refactor, and use aiohttp

This commit is contained in:
2025-04-06 23:44:42 -07:00
parent c29955de7f
commit cd4c5e8bd4
18 changed files with 788 additions and 8926 deletions
+58
View File
@@ -0,0 +1,58 @@
name: Periodic refresh of events
run-name: Periodic refresh
on:
schedule:
- cron: '*/30 * * * *'
jobs:
Run-Scraper:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up python
id: setup-python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Set up python
id: setup-python
uses: actions/setup-python@v5
with:
python-version: '3.12'
#----------------------------------------------
# ----- install & configure poetry -----
#----------------------------------------------
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
virtualenvs-path: .venv
installer-parallel: true
#----------------------------------------------
# load cached venv if cache exists
#----------------------------------------------
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
#----------------------------------------------
# install dependencies if cache does not exist
#----------------------------------------------
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
- name: Install package
run: poetry install --no-interaction
- name: Generate New Calendar Files
run: poetry run generate-ics
- name: Archive production artifacts
uses: actions/upload-artifact@v4
with:
name: dist-without-markdown
path: |
output/
+2
View File
@@ -1,3 +1,5 @@
output/
# ---> Python # ---> Python
# Byte-compiled / optimized / DLL files # Byte-compiled / optimized / DLL files
__pycache__/ __pycache__/
-112
View File
@@ -1,112 +0,0 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Autographs Schedule//eventeny.com//
X-WR-CALNAME:Autographs
BEGIN:VEVENT
SUMMARY:Simba Tsuchiya Autograph
DTSTART:20250418T123000
DTEND:20250418T133000
CATEGORIES:Autograph,Guest of Honor,Simba Tsuchiya
DESCRIPTION:Track: Autographs\nTags: Autograph\,Guest of Honor\,Simba Tsuc
hiya\n\n
LOCATION:Autograph Hall - Flex A
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Sally Amaki Autograph
DTSTART:20250418T140000
DTEND:20250418T150000
CATEGORIES:Autograph,Guest of Honor,Sally Amaki
DESCRIPTION:Track: Autographs\nTags: Autograph\,Guest of Honor\,Sally Amak
i\n\n
LOCATION:Autograph Hall - Flex A
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Sora Tokui Autograph
DTSTART:20250418T140000
DTEND:20250418T150000
CATEGORIES:Autograph,Guest of Honor,Sora Tokui
DESCRIPTION:Track: Autographs\nTags: Autograph\,Guest of Honor\,Sora Tokui
\n\n
LOCATION:Autograph Hall - Flex A
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Reol Autograph
DTSTART:20250418T160000
DTEND:20250418T170000
CATEGORIES:Reol
DESCRIPTION:Track: Autographs\nTags: Reol\n\n
LOCATION:Autograph Hall - Flex A
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Turtleme Autograph
DTSTART:20250418T173000
DTEND:20250418T183000
CATEGORIES:Autograph,Guest of Honor,TurtleMe
DESCRIPTION:Track: Autographs\nTags: Autograph\,Guest of Honor\,TurtleMe\n
\n
LOCATION:Autograph Hall - Flex A
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Hitsujibungaku Autograph
DTSTART:20250418T203000
DTEND:20250418T213000
CATEGORIES:Autograph,Hitsujibungaku
DESCRIPTION:Track: Autographs\nTags: Autograph\,Hitsujibungaku\n\n
LOCATION:Autographs - 4C 3 & 4
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Sora Tokui Autograph
DTSTART:20250419T133000
DTEND:20250419T143000
CATEGORIES:Autograph,Guest of Honor,Sora Tokui
DESCRIPTION:Track: Autographs\nTags: Autograph\,Guest of Honor\,Sora Tokui
\n\n
LOCATION:Autograph Hall - Flex A
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:TurtleMe Autograph
DTSTART:20250419T150000
DTEND:20250419T160000
CATEGORIES:Autograph,Guest of Honor,TurtleMe
DESCRIPTION:Track: Autographs\nTags: Autograph\,Guest of Honor\,TurtleMe\n
\n
LOCATION:Autograph Hall - Flex A
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Hitsujibungaku Autograph
DTSTART:20250419T180000
DTEND:20250419T190000
CATEGORIES:Autograph,Guest of Honor,Hitsujibungaku
DESCRIPTION:Track: Autographs\nTags: Autograph\,Guest of Honor\,Hitsujibun
gaku\n\n
LOCATION:Autograph Hall - Flex A
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Reol Autograph
DTSTART:20250419T213000
DTEND:20250419T223000
CATEGORIES:Autograph,Reol
DESCRIPTION:Track: Autographs\nTags: Autograph\,Reol\n\n
LOCATION:Autographs - 4C 3 & 4
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Sally Amaki Autograph
DTSTART:20250420T130000
DTEND:20250420T140000
CATEGORIES:Autograph,Guest of Honor,Sally Amaki
DESCRIPTION:Track: Autographs\nTags: Autograph\,Guest of Honor\,Sally Amak
i\n\n
LOCATION:Autograph Hall - Flex A
STATUS:ACTIVE
END:VEVENT
END:VCALENDAR
-38
View File
@@ -1,38 +0,0 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Charity Auction Schedule//eventeny.com//
X-WR-CALNAME:Charity Auction
BEGIN:VEVENT
SUMMARY:Charity Auction Viewing
DTSTART:20250418T110000
DTEND:20250418T180000
CATEGORIES:Charity Auction
DESCRIPTION:Track: Charity Auction\nTags: Charity Auction\n\nCome view the
available items that will be auctioned on Sunday for our annual Charity A
uction! All proceeds go to the Make-A-Wish Foundation.
LOCATION:Charity Auction & Charity Art Show
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Charity Auction Viewing
DTSTART:20250419T110000
DTEND:20250419T180000
CATEGORIES:Charity Auction
DESCRIPTION:Track: Charity Auction\nTags: Charity Auction\n\nCome view the
available items that will be auctioned on Sunday for our annual Charity A
uction! All proceeds go to the Make-A-Wish Foundation.
LOCATION:Charity Auction & Charity Art Show
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Charity Auction - Live Auction!
DTSTART:20250420T120000
DTEND:20250420T150000
CATEGORIES:Charity Auction
DESCRIPTION:Track: Charity Auction\nTags: Charity Auction\n\nLive auction
to benefit our sister charity\, the Make-A-Wish Foundation!\nCome make a b
id on some fun anime items for charity!
LOCATION:Charity Auction & Charity Art Show
STATUS:ACTIVE
END:VEVENT
END:VCALENDAR
-349
View File
@@ -1,349 +0,0 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Cultural Panel Schedule//eventeny.com//
X-WR-CALNAME:Cultural Panel
BEGIN:VEVENT
SUMMARY:Origami Workshop with PAPER
DTSTART:20250418T100000
DTEND:20250418T120000
CATEGORIES:SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: SC-ALL\n\nDiscover the fascinatin
g craft of origami and learn how to fold decorative\, amusing and practica
l items with a sheet of paper.
LOCATION:Workshop - 330
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Dreamland Maid Cafe
DTSTART:20250418T110000
DTEND:20250418T150000
CATEGORIES:Dreamland,Maid Cafe
DESCRIPTION:Track: Cultural Panel\nTags: Dreamland\,Maid Cafe\n\nBook a re
servation for the Dreamland Maid Cafe at
LOCATION:Dreamland Maid Cafe - Elliot Bay Room
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:The Japanese Tea Ceremony of Chanoyu presented by the East-West Ch
anoyu Center
DTSTART:20250418T120000
DTEND:20250418T130000
CATEGORIES:Cultural,SC-ALL,Tea Ceremony
DESCRIPTION:Track: Cultural Panel\nTags: Cultural\,SC-ALL\,Tea Ceremony\n\
n"The interactive Japanese Tea Ceremony\, known as Chanoyu\, is a 400-year
-old cultural practice that cultivates mindfulness and gratitude through a
rt\, aesthetics\, and hospitality.\nStepping into the tearoom\, guests are
enveloped in the soothing sounds of boiling water\, the seasonal beauty o
f handcrafted tea implements\, the subtle fragrance of incense\, and the e
xquisite taste of freshly whisked matcha tea.\nWe invite you to immerse yo
urself in this multi-sensory experience at SakuraCon 2025."
LOCATION:Tea Ceremony - 338-339
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Modern Swordfighting Through Historical European Martial Arts
DTSTART:20250418T140000
DTEND:20250418T153000
CATEGORIES:SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: SC-ALL\n\n
LOCATION:SakuraDome - 6E
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Samurai Undressed
DTSTART:20250418T143000
DTEND:20250418T160000
CATEGORIES:Cultural,SC-10
DESCRIPTION:Track: Cultural Panel\nTags: Cultural\,SC-10\n\nGet up close a
nd personal with the samurai! Hear about the real legends that are now por
trayed in pop culture. Discover what lies beneath the armor figuratively a
nd literally! See how the individual components of Japanese armor were wor
n and what types of accessories and weapons a samurai may have carried int
o battle. Learn about interesting places to visit in Japan if youre a f
an of these ancient warriors!
LOCATION:Prog Panels - 343-344
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Husky Wushu
DTSTART:20250418T160000
DTEND:20250418T170000
CATEGORIES:SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: SC-ALL\n\nWushu is a Chinese mart
ial art and international sport derived from hundreds of years of traditio
nal Chinese Kung Fu. Husky Wushu has been an active club at UW for over 15
years\, with a mission to foster an inclusive community around the practi
ce of Chinese martial arts. We will be performing a medley of individual f
orms\, group forms and fight sets\, including hand forms and weapon forms
such as sword\, staff\, and fan. We'll be doing a workshop after our perfo
rmance\, so stick around to learn some skills from us!
LOCATION:SakuraDome - 6E
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Dreamland Maid Cafe
DTSTART:20250418T160000
DTEND:20250418T190000
CATEGORIES:Dreamland,Maid Cafe
DESCRIPTION:Track: Cultural Panel\nTags: Dreamland\,Maid Cafe\n\nBook a re
servation for the Dreamland Maid Cafe at
LOCATION:Dreamland Maid Cafe - Elliot Bay Room
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Discover the Sound of Traditional Japanese Harp
DTSTART:20250419T070000
DTEND:20250419T080000
CATEGORIES:SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: SC-ALL\n\nJoin our interactive pa
nel presenting beautiful Japanese music! Koto no WA\, ensemble of local ko
to (Japanese harp) musicians in the Greater Seattle Area\, will play both
traditional and contemporary songs\, including some songs from anime serie
s. The panel will be a combination of live music performances and Q & A se
ssions to be followed by hands-on experience time when participants can ta
lk directly with the performing musicians. Dont miss this rare opportun
ity to experience Japans traditional string instrument with more than a
thousand years of history.
LOCATION:Prog Panels - 307
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Dreamland Maid Cafe
DTSTART:20250419T110000
DTEND:20250419T150000
CATEGORIES:Dreamland,Maid Cafe
DESCRIPTION:Track: Cultural Panel\nTags: Dreamland\,Maid Cafe\n\nBook a re
servation for the Dreamland Maid Cafe at
LOCATION:Dreamland Maid Cafe - Elliot Bay Room
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:The Japanese Tea Ceremony of Chanoyu presented by the East-West Ch
anoyu Center
DTSTART:20250419T140000
DTEND:20250419T150000
CATEGORIES:Cultural,SC-ALL,Tea Ceremony
DESCRIPTION:Track: Cultural Panel\nTags: Cultural\,SC-ALL\,Tea Ceremony\n\
n"The interactive Japanese Tea Ceremony\, known as Chanoyu\, is a 400-year
-old cultural practice that cultivates mindfulness and gratitude through a
rt\, aesthetics\, and hospitality.\nStepping into the tearoom\, guests are
enveloped in the soothing sounds of boiling water\, the seasonal beauty o
f handcrafted tea implements\, the subtle fragrance of incense\, and the e
xquisite taste of freshly whisked matcha tea.\nWe invite you to immerse yo
urself in this multi-sensory experience at SakuraCon 2025."
LOCATION:Tea Ceremony - 338-339
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Kendo and Iaido Demonstration
DTSTART:20250419T143000
DTEND:20250419T153000
CATEGORIES:SC-10
DESCRIPTION:Track: Cultural Panel\nTags: SC-10\n\n"Kendo\, meaning ""path
of the sword\,"" is a traditional Japanese martial art descended from Kenj
utsu. It is practiced with bamboo swords and armored gear\, and is a comba
tive martial art. Iaido\, meaning ""the path of drawing the sword"" is a t
raditional martial art developed in the Edo period as a meditative way for
Samurai to remember how to draw their swords in peacetime. Due to using m
etal swords called Iaito\, it is a non-combative martial art."
LOCATION:SakuraDome - 6E
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Working in Japan on the JET Program
DTSTART:20250419T150000
DTEND:20250419T160000
CATEGORIES:Cultural,SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: Cultural\,SC-ALL\n\nAre you inter
ested in working in Japan? The Japan Exchange Teaching (JET) Program has b
rought over70\,000 participants from more than 55 countries to work in sch
ools\, boards of education\, and government offices throughout Japan! The
JET Program is the only teaching exchange program managed by the governmen
t of Japan. Learn more about the application process and hear from former
participants about their time in Japan and the impact that the JET Program
has had on their lives. Note: A bachelors degree is a minimum requirem
ent for this job opportunity.
LOCATION:Workshop - 330
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Dreamland Maid Cafe
DTSTART:20250419T160000
DTEND:20250419T190000
CATEGORIES:Dreamland,Maid Cafe
DESCRIPTION:Track: Cultural Panel\nTags: Dreamland\,Maid Cafe\n\nBook a re
servation for the Dreamland Maid Cafe at
LOCATION:Dreamland Maid Cafe - Elliot Bay Room
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Inu-Oh Screening
DTSTART:20250419T173000
DTEND:20250419T193000
CATEGORIES:Screening
DESCRIPTION:Track: Cultural Panel\nTags: Screening\n\nInu-Oh (犬王) is a
historical musical anime film directed by Masaaki Yuasa and produced by S
cience SARU. It is based on the novel Tales of the Heike: Inu-Oh by Hideo
Furukawa. The film is set in 14th century Japan.\n\nIt premiered at the Ve
nice International Film Festival.\nSynopsis: Born to an esteemed family\,
Inu-oh is afflicted with an ancient curse that has left him on the margins
of society. When he meets the blind musician Tomona\, a young biwa priest
haunted by his past\, Inu-oh discovers a captivating ability to dance. Th
e pair quickly become inseparable friends as crowds flock to their electri
c\, larger-than-life concerts. But when those in power threaten to break u
p the band\, Inu-oh and Tomona must dance and sing to uncover the truth be
hind their creative gifts. \nOriginal Voice Cast:\nInu-oh: Avu-chan (Queen
Bee)\nTomona: Mirai Moriyama\nLord Yoshimitsu Ashikaga: Tasuku Emoto\nInu
-ohs Father: Kenjiro Tsuda\nTomonas Father: Yutaka Matsushige\nEngli
sh Dub Cast:\nInu-oh: Joshua Waters\nTomona: Sena Bryer\nLord Yoshimitsu A
shikaga: Cory Yee\nInu-oh (Teen): Holden Thomas\nTomona (Young): Carter Yo
ung\nTomona (Teen): Jonathan Leon
LOCATION:Relations Panels/Premiers - Ballroom 2
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:JET Program Alumni Meet-Up
DTSTART:20250419T183000
DTEND:20250419T190000
CATEGORIES:Cultural,SC-13
DESCRIPTION:Track: Cultural Panel\nTags: Cultural\,SC-13\n\n“Once you
re a JET\, youre always a JET!” The Consulate-General of Japan in Sea
ttle is teaming up with the PNW JET Alumni Association to host the JET Alu
mni Meet-Up! There is life beyond the BoE\, and truth can be stranger than
fiction when it comes to the daily life of a JET working in Japan! We kno
w youre here: come meet other nerdy alumni to connect\, reminisce\, and
share your real-life anime-zing stories! If you're not a yet a JET\, come
join us to learn about the “JET Experience” from those who have “be
en there and done that” at this relaxed\, fun\, and informal gathering.
LOCATION:Workshop - 330
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Mastering Japanese Singing: Techniques & Live Coaching
DTSTART:20250420T103000
DTEND:20250420T113000
CATEGORIES:SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: SC-ALL\n\n"Learn how to sing Japa
nese songs with confidence and authenticity\, even if you cant read or
speak Japanese! Join professional Japanese vocal coach Ko Nakamura\, based
in North America\, for an engaging and interactive panel designed to elev
ate your Japanese singing skills. With over 12 years of experience coachin
g more than 500 singers worldwide—including VTubers and utaite performer
s—Ko brings his expertise to help you master essential techniques and ov
ercome common challenges when singing in Japanese. \nIn the first half\, y
oull learn:\n-The unique rules and quirks of reading romaji in Japanese
songs. \n-Proper Japanese pronunciation to avoid common mistakes\, even f
or advanced learners.\n-Tips for achieving authentic Japanese vocal expres
sion\, straight from a native coach.In the second half\, its your turn
to take the stage!\nParticipate in our “Chorus Singing Challenge"" by se
lecting a song from our curated setlist and performing alongside music. Ko
will provide live coaching and feedback\, giving you a rare chance to exp
erience one-on-one vocal training in a fun and supportive setting. Whether
youre a beginner or have experience singing in Japanese\, this panel o
ffers valuable insights and hands-on practice to elevate your performance.
Dont miss this unique opportunity to learn from a native Japanese voca
l coach and take your Japanese singing to the next level!"
LOCATION:Prog Panels - 445-446
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Dreamland Maid Cafe
DTSTART:20250420T110000
DTEND:20250420T160000
CATEGORIES:Dreamland,Maid Cafe
DESCRIPTION:Track: Cultural Panel\nTags: Dreamland\,Maid Cafe\n\nBook a re
servation for the Dreamland Maid Cafe at
LOCATION:Dreamland Maid Cafe - Elliot Bay Room
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Learn Japanese Festival Dances with UW Taiko Kai!
DTSTART:20250420T120000
DTEND:20250420T130000
CATEGORIES:Cultural,SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: Cultural\,SC-ALL\n\nBon Odori is
a style of dance performed by community members of all ages for Obon\, a J
apanese holiday and festival for honoring and celebrating one's ancestors.
Come join us for a Wadaiko (Japanese Traditional Drumming) performance an
d to learn Obon dances so you can join on the fun next Obon season! No exp
erience or intense movement required!
LOCATION:SakuraDome - 6E
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:The Fabulous Furoshiki - Japanese Cloth Wrapping Techniques
DTSTART:20250420T123000
DTEND:20250420T140000
CATEGORIES:Cultural,SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: Cultural\,SC-ALL\n\nSince ancient
times\, the Japanese have used a simple square cloth called a furoshiki t
o wrap and carry anything and everything. In todays environmentally con
scious age of maximizing use and minimizing waste\, the furoshiki is makin
g a strong comeback! Learn the basics of how to use this “eco-friendly
” alternative to plastic bags and wrapping paper. This is a hands-on int
roduction to fun and functional Japanese furoshiki wrapping techniques!
LOCATION:Workshop - 330
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Husky Taekwondo Demo Team
DTSTART:20250420T133000
DTEND:20250420T140000
CATEGORIES:SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: SC-ALL\n\n
LOCATION:SakuraDome - 6E
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:An Intro to Japanese Traditional Instruments with Dekoboko Taiko
DTSTART:20250420T133000
DTEND:20250420T143000
CATEGORIES:Cultural,SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: Cultural\,SC-ALL\n\nDekoboko Taik
o invites you to learn about the rich history of traditional Japanese inst
ruments\, particularly percussion and winds\, and their cultural influence
in Japan and the world. This fun and interactive panel will include a per
formance and demonstration by members of the local Seattle group Dekoboko
Taiko. Explore the festive beats of the taiko\, the dancing clicks of the
naruko\, the lively melodies of the fue\, and a few more surprises! Partic
ipants will be able to try out many of the featured instruments and enjoy
a full performance from the group!
LOCATION:Prog Panels - 440-442
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:The Japanese Tea Ceremony of Chanoyu presented by the East-West Ch
anoyu Center
DTSTART:20250420T140000
DTEND:20250420T150000
CATEGORIES:Cultural,SC-ALL,Tea Ceremony
DESCRIPTION:Track: Cultural Panel\nTags: Cultural\,SC-ALL\,Tea Ceremony\n\
n"The interactive Japanese Tea Ceremony\, known as Chanoyu\, is a 400-year
-old cultural practice that cultivates mindfulness and gratitude through a
rt\, aesthetics\, and hospitality.\nStepping into the tearoom\, guests are
enveloped in the soothing sounds of boiling water\, the seasonal beauty o
f handcrafted tea implements\, the subtle fragrance of incense\, and the e
xquisite taste of freshly whisked matcha tea.\nWe invite you to immerse yo
urself in this multi-sensory experience at SakuraCon 2025."
LOCATION:Tea Ceremony - 338-339
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Ikebana Demonstration (Japanese flower arrangement)
DTSTART:20250420T143000
DTEND:20250420T153000
CATEGORIES:SC-ALL
DESCRIPTION:Track: Cultural Panel\nTags: SC-ALL\n\nSogetsu Ikebana is the
modern school of Japanese flower arranging\, dynamic and relevant to the t
imes. It is the one of the largest schools of ikebana in Japan\, with head
quarters in Tokyo and branches throughout the world. Sogetsu emphasizes in
dividual creative expression using the materials of nature as the medium.
Megumi Schacher is a certified instructor with the rank of riji\, which is
the highest possible rank. She is an active member of the ikebana communi
ty\, teaching\, exhibiting\, and demonstrating the art and practice of Sog
etsu ikebana. Today she will create arrangements for you that introduce th
e concepts and techniques of ikebana.
LOCATION:Workshop - 330
STATUS:ACTIVE
END:VEVENT
END:VCALENDAR
File diff suppressed because it is too large Load Diff
-2288
View File
File diff suppressed because it is too large Load Diff
-435
View File
@@ -1,435 +0,0 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Guest of Honor Schedule//eventeny.com//
X-WR-CALNAME:Guest of Honor
BEGIN:VEVENT
SUMMARY:Ian & Sonny talk One Piece
DTSTART:20250418T110000
DTEND:20250418T120000
CATEGORIES:Ian Sinclair,Sonny Strait
DESCRIPTION:Track: Guest of Honor\nTags: Ian Sinclair\,Sonny Strait\n\nJoi
n Ian Sinclair and Sonny Strait as they chat about their thoughts and expe
riences voice acting for One Piece.
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Life Fibers\, Half-Demons\, and Explosions... Oh My!
DTSTART:20250418T113000
DTEND:20250418T123000
CATEGORIES:Erica Mendez
DESCRIPTION:Track: Guest of Honor\nTags: Erica Mendez\n\nKill la Kill\, Ge
nshin Impact\, Sword Art Online\, Sailor Moon… these are just some of ma
ny\nthe fun titles that Erica has been a part of. Dont lose your way an
d come ask questions about some of your favorite projects shes been in!
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Brandon McInnis and J. Michael Tatum Q&A
DTSTART:20250418T123000
DTEND:20250418T133000
CATEGORIES:Brandon McInnis,Guest of Honor,J. Michael Tatum
DESCRIPTION:Track: Guest of Honor\nTags: Brandon McInnis\,Guest of Honor\,
J. Michael Tatum\n\n
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Sora Tokui Panel
DTSTART:20250418T123000
DTEND:20250418T133000
CATEGORIES:Guest of Honor,Sora Tokui
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Sora Tokui\n\nSor
a Tokui is a voice actress\, voice of Nico Yazawa\, T.M. Opera O\, Hook an
d more! But shes also a singer\, manga artist\, and yes\, even a VTuber
! Come hear some stories about her experience working in the industry\, a
nd on some beloved fan franchises!
LOCATION:Relations Panels/Premiers - Ballroom 3
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Casey Mongillo Q&A
DTSTART:20250418T130000
DTEND:20250418T140000
CATEGORIES:Casey Mongillo,Guest of Honor
DESCRIPTION:Track: Guest of Honor\nTags: Casey Mongillo\,Guest of Honor\n\
n
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Women in Anime
DTSTART:20250418T133000
DTEND:20250418T143000
CATEGORIES:Abby Trott,Emi Lo,Erica Lindbeck,Trina Nishimura
DESCRIPTION:Track: Guest of Honor\nTags: Abby Trott\,Emi Lo\,Erica Lindbec
k\,Trina Nishimura\n\nJoin some of your favorite voice actresses as they t
alk about what it's like to be a woman working in the anime industry\, the
ir favorite characters\, tropes they love/hate\, and more!
LOCATION:Relations Panels/Premiers - Ballroom 2
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Reol Q&A Panel
DTSTART:20250418T143000
DTEND:20250418T153000
CATEGORIES:Reol
DESCRIPTION:Track: Guest of Honor\nTags: Reol\n\n
LOCATION:Relations Panels/Premiers - Ballroom 3
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:VO Workshop 101 with Lucien Dodge
DTSTART:20250418T143000
DTEND:20250418T153000
CATEGORIES:Guest of Honor,Lucien Dodge
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Lucien Dodge\n\nE
ver wanted to try your hand… err… voice… at voice acting\, or maybe
just get a glimpse behind the production curtain? In this introductory co
urse\, Lucien will group up volunteers to perform scenes from various anim
e and video games\, and give personalized direction to simulate an in-stud
io recording session
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jordan Dash Cruz Q&A
DTSTART:20250418T160000
DTEND:20250418T170000
CATEGORIES:Guest of Honor,Jordan Dash Cruz
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Jordan Dash Cruz\
n\n
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:TurtleMe and Yen Press Presents: Getting Stronger and Stronger—I
nto the World of Action Fantasy
DTSTART:20250418T160000
DTEND:20250418T170000
CATEGORIES:Guest of Honor,Industry,TurtleMe,Yen Press
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Industry\,TurtleM
e\,Yen Press\n\nAs the creator of The Beginning After the End\, a popular
webnovel which has been adapted to a Crunchyroll anime\, there are few who
are as versed in the world of action fantasy as creator TurtleMe. Join Tu
rtleMe in a fun-filled and informative discussion on the genre!
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Discover GQuuuuuuX!! –“Mobile Suit Gundam GQuuuuuuX -Beginning
-“ Movie Screening
DTSTART:20250418T160000
DTEND:20250418T180000
CATEGORIES:Bandai,Industry,Screening,Simba Tsuchiya
DESCRIPTION:Track: Guest of Honor\nTags: Bandai\,Industry\,Screening\,Simb
a Tsuchiya\n\nCome discover and learn about the new “Mobile Suit Gundam
GQuuuuuuX” with a special guest appearance from the voice of Shuji Itō\
, Simba Tsuchiya!\n*The movie\, “Mobile Suit Gundam GQuuuuuuX Beginni
ng-“ is a theatrical debut using re-edited episodes from the upcoming TV
series\, “Mobile Suit Gundam GQuuuuuuX”
LOCATION:Relations Panels/Premiers - Ballroom 2
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Sally Amaki Panel
DTSTART:20250418T170000
DTEND:20250418T180000
CATEGORIES:Guest of Honor,Sally Amaki
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Sally Amaki\n\nBi
lingual voice actress and idol Sally Amaki is the beloved voice of charact
ers such as Fujima Sakura from 22/7\, Carol Olsten from Tomo-chan is a Gir
l!\, Kiriko from Overwatch\, and most recently Peni Parker from Marvel Riv
als. Come enjoy this special panel that talks about her career\, and make
sure to stay until the end as there may be some special prizes!
LOCATION:Relations Panels/Premiers - Ballroom 3
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Oriana Peron - Drag Race
DTSTART:20250418T170000
DTEND:20250418T190000
CATEGORIES:Oriana Peron
DESCRIPTION:Track: Guest of Honor\nTags: Oriana Peron\n\nDo you have what
it takes to be a Drag Superstar? Come experience and partake in the Origin
al Cosplay Drag Race created by Americas Premiere Cosplay Drag Queen Or
iana Peron\, Drag King co-host Verna Vendetta\, and local guest Drag Super
stars! Attendee contestants engage in fun and silly games to compete for t
his year's title! No experience needed\, just show up and volunteer to com
pete\, everyone is welcome. Or\, sit back and watch the antics. The quirky
competition events are intermixed with professional Drag performances for
all ages.
LOCATION:Summit Stage
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Dameon Clarke Q&A
DTSTART:20250418T173000
DTEND:20250418T183000
CATEGORIES:Dameon Clarke,Guest of Honor
DESCRIPTION:Track: Guest of Honor\nTags: Dameon Clarke\,Guest of Honor\n\n
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Xander Mobus Q&A
DTSTART:20250418T173000
DTEND:20250418T183000
CATEGORIES:Guest of Honor,Xander Mobus
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Xander Mobus\n\n
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Hitsujibungaku Concert
DTSTART:20250418T190000
DTEND:20250418T200000
CATEGORIES:Hitsujibungaku
DESCRIPTION:Track: Guest of Honor\nTags: Hitsujibungaku\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Amalee Q&A
DTSTART:20250419T110000
DTEND:20250419T120000
CATEGORIES:AmaLee,Guest of Honor
DESCRIPTION:Track: Guest of Honor\nTags: AmaLee\,Guest of Honor\n\n
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Bandai Namco Filmworks Industry Panel (feat. Simba Tsuchiya)
DTSTART:20250419T110000
DTEND:20250419T120000
CATEGORIES:Bandai,Guest of Honor,Industry,Simba Tsuchiya
DESCRIPTION:Track: Guest of Honor\nTags: Bandai\,Guest of Honor\,Industry\
,Simba Tsuchiya\n\nCome to the Bandai Namco Filmworks Industry Panel to ge
t our latest news on upcoming anime and to talk about the new “Mobile Su
it Gundam GQuuuuuuX” with a special guest appearance from Simba Tsuchiya
(the voice of Shuji Itō).
LOCATION:Relations Panels/Premiers - Ballroom 3
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Ian Sinclair Q&A
DTSTART:20250419T113000
DTEND:20250419T123000
CATEGORIES:Guest of Honor,Ian Sinclair
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Ian Sinclair\n\n
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Demon Slayer Chat!
DTSTART:20250419T123000
DTEND:20250419T133000
CATEGORIES:Abby Trott,Brandon McInnis,Erica Lindbeck,Guest of Honor
DESCRIPTION:Track: Guest of Honor\nTags: Abby Trott\,Brandon McInnis\,Eric
a Lindbeck\,Guest of Honor\n\nSome familiar voices sit down and chat about
their experiences and memories working on Demon Slayer!
LOCATION:Relations Panels/Premiers - Ballroom 3
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Yen Press Presents: From Webnovel to Anime—The Journey of Turtle
Me\, Creator of The Beginning After t
DTSTART:20250419T123000
DTEND:20250419T133000
CATEGORIES:Guest of Honor,Industry,TurtleMe,Yen Press
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Industry\,TurtleM
e\,Yen Press\n\nTurtleMe is the creator of The Beginning After the End\, a
long running webnovel which has been adapted into one of todays most p
opular webcomics and an anime set to air on Crunchyroll. Join TurtleMe and
Yen Press in a brief journey through his career as a creator leading up t
o the exciting premiere of The Beginning After the Ends anime followed
by a Q&A session with fans!
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Sonny Strait Q&A
DTSTART:20250419T130000
DTEND:20250419T140000
CATEGORIES:Guest of Honor,Sonny Strait
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Sonny Strait\n\n
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:h.NAOTO Doors Open
DTSTART:20250419T140000
DTEND:20250419T143000
DESCRIPTION:Track: Guest of Honor\n\n
LOCATION:Summit Stage
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Voice-Over Workout with Erica Mendez
DTSTART:20250419T140000
DTEND:20250419T150000
CATEGORIES:Erica Mendez,Guest of Honor
DESCRIPTION:Track: Guest of Honor\nTags: Erica Mendez\,Guest of Honor\n\nH
osted by voice actor and occasional director\, Erica Mendez\, come get a c
hance to read scripts and get a taste of what voice acting can be like wit
h the added pressure of reading in front of an audience of more people tha
n would be at an actual session!
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Damien Haas Q&A
DTSTART:20250419T143000
DTEND:20250419T153000
CATEGORIES:Damien Haas,Guest of Honor
DESCRIPTION:Track: Guest of Honor\nTags: Damien Haas\,Guest of Honor\n\n
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:h.NAOTO Fashion Show and Q&A
DTSTART:20250419T143000
DTEND:20250419T160000
CATEGORIES:Fashion Show,h.NAOTO
DESCRIPTION:Track: Guest of Honor\nTags: Fashion Show\,h.NAOTO\n\n
LOCATION:Summit Stage
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Seiyuu Idol? Or Idol Seiyuu? Featuring Sally Amaki and Sora Tokui
DTSTART:20250419T153000
DTEND:20250419T163000
CATEGORIES:Guest of Honor,Sally Amaki,Sora Tokui
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Sally Amaki\,Sora
Tokui\n\nWhat was it like to voice one of the most famous anime idols\, a
nd how is it being part of a real life idol group in Japan? Has Sora Toku
is life been altered after Sally introduced her to the mysterious red p
owder (Flaming Hot Ch______)?\nFor answers to these burning questions and
more\, stop by this special collaborative panel!
LOCATION:Relations Panels/Premiers - Ballroom 2
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Trina Nishimura Q&A
DTSTART:20250419T153000
DTEND:20250419T163000
CATEGORIES:Guest of Honor,Trina Nishimura
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Trina Nishimura\n
\n
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Directing Anime with Jordan Dash Cruz
DTSTART:20250419T160000
DTEND:20250419T170000
CATEGORIES:Guest of Honor,Jordan Dash Cruz
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Jordan Dash Cruz\
n\nCurious about what directors are looking for from newer talent when cas
ting for an anime? Come hear Jodan Dash Cruz give the inside scoop!
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Hitsujibungaku Q&A
DTSTART:20250419T160000
DTEND:20250419T170000
CATEGORIES:Guest of Honor,Hitsujibungaku
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Hitsujibungaku\n\
n
LOCATION:Relations Panels/Premiers - Ballroom 3
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Emi Lo Q&A
DTSTART:20250419T170000
DTEND:20250419T180000
CATEGORIES:Emi Lo,Guest of Honor
DESCRIPTION:Track: Guest of Honor\nTags: Emi Lo\,Guest of Honor\n\n
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Q&A with Lucien Dodge
DTSTART:20250419T173000
DTEND:20250419T183000
CATEGORIES:Guest of Honor,Lucien Dodge
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Lucien Dodge\n\n
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Sally Amaki Concert
DTSTART:20250419T190000
DTEND:20250419T193000
CATEGORIES:concert,Sally Amaki
DESCRIPTION:Track: Guest of Honor\nTags: concert\,Sally Amaki\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Reol Concert
DTSTART:20250419T194500
DTEND:20250419T204500
CATEGORIES:concert,Reol
DESCRIPTION:Track: Guest of Honor\nTags: concert\,Reol\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Oriana Peron - Drag Show
DTSTART:20250419T210000
DTEND:20250419T220000
CATEGORIES:Drag Show,Oriana Peron
DESCRIPTION:Track: Guest of Honor\nTags: Drag Show\,Oriana Peron\n\nGet re
ady for The Original Cosplay Drag Show starring Oriana Peron and featuring
some of the hottest Drag Cosplay talents\, including local stars! Oriana
has brought you some wild and exciting queer entertainment\, so come and e
njoy the show. All ages\, gender identities\, sexualities\, and humans are
welcome to enjoy this award-winning lineup thats been thrilling conven
tion attendees across the USA since 2012.
LOCATION:Summit Stage
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Dameon Clarke Panel 2
DTSTART:20250420T110000
DTEND:20250420T120000
CATEGORIES:Dameon Clarke,Guest of Honor
DESCRIPTION:Track: Guest of Honor\nTags: Dameon Clarke\,Guest of Honor\n\n
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Xander Mobus Panel 2
DTSTART:20250420T113000
DTEND:20250420T123000
CATEGORIES:Guest of Honor,Xander Mobus
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,Xander Mobus\n\n
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:J. Michael Tatum Q&A
DTSTART:20250420T130000
DTEND:20250420T140000
CATEGORIES:Guest of Honor,J. Michael Tatum
DESCRIPTION:Track: Guest of Honor\nTags: Guest of Honor\,J. Michael Tatum\
n\n
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Delicious in Dungeon with Damien Haas & Casey Mongillo
DTSTART:20250420T140000
DTEND:20250420T150000
CATEGORIES:Casey Mongillo,Damien Haas,Guest of Honor
DESCRIPTION:Track: Guest of Honor\nTags: Casey Mongillo\,Damien Haas\,Gues
t of Honor\n\nWhat dungeon monster would you like to try? Do you think you
could make it as an adventurer? The voices of Laios and Chilchuck answer
these questions and many more!
LOCATION:Relations Panels/Premiers - Ballroom 3
STATUS:ACTIVE
END:VEVENT
END:VCALENDAR
-103
View File
@@ -1,103 +0,0 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Industry Panel Schedule//eventeny.com//
X-WR-CALNAME:Industry Panel
BEGIN:VEVENT
SUMMARY:The Beginning After the End Episodes 1-2 Special Screening
DTSTART:20250418T120000
DTEND:20250418T130000
CATEGORIES:Crunchyroll,premiere,Screening
DESCRIPTION:Track: Industry Panel\nTags: Crunchyroll\,premiere\,Screening\
n\nAfter a mysterious death\, King Grey is reborn as Arthur Leywin on the
magical continent of Dicathen. Although he enters his second life as a bab
y\, his previous wisdom remains. He begins to master magic and forge his o
wn path as the years go by\, seeking to correct the mistakes of his past l
ife.
LOCATION:Relations Panels/Premiers - Ballroom 2
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Yen Press Industry Panel
DTSTART:20250418T143000
DTEND:20250418T153000
CATEGORIES:Industry,Yen Press
DESCRIPTION:Track: Industry Panel\nTags: Industry\,Yen Press\n\nFor over a
decade\, Yen Press has been one of the biggest publishers of manga\, rele
asing the likes of Black Butler\, Fruits Basket and Toilet-bound Hanako-ku
n. Additionally\, Yen Press has stood out as an innovative force in the pu
blishing world\, giving a home to fan favorite categories\, such as light
novels through Yen On\, audiobooks through Yen Audio\, and Korean content
through Ize Press. Join Yen Press as they make groundbreaking announcement
s\, hand out amazing gifts and prizes\, and answer your most pressing ques
tions!
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Crunchyroll Premieres: Sakura-Con Edition
DTSTART:20250419T113000
DTEND:20250419T133000
CATEGORIES:Crunchyroll,premiere,Screening
DESCRIPTION:Track: Industry Panel\nTags: Crunchyroll\,premiere\,Screening\
n\nDon't miss your chance to be the first to watch upcoming anime coming s
oon to Crunchyroll! Featuring premieres for Solo Camping for Two\, Dekin n
o Mogura: The Earthbound Mole\, Konosuba Bonus Stage\, plus a special scre
ening for Can a Boy-Girl Friendship Survive?.
LOCATION:Relations Panels/Premiers - Ballroom 2
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Aniplex of America Industry Panel
DTSTART:20250419T183000
DTEND:20250419T193000
CATEGORIES:Aniplex,Industry
DESCRIPTION:Track: Industry Panel\nTags: Aniplex\,Industry\n\nDo titles li
ke Demon Slayer: Kimetsu no Yaiba\, Sword Art Online\, or WIND BREAKER mak
e your otaku heart skip a beat? Then you dont want to miss the Aniplex
of America Industry Panel! Join us as we bring you the latest news on all
your favorite Aniplex shows!
LOCATION:Relations Panels - 433-434
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:My Hero Academia Vigilantes 1-2 Special Screening
DTSTART:20250420T110000
DTEND:20250420T120000
CATEGORIES:Crunchyroll,premiere,Screening
DESCRIPTION:Track: Industry Panel\nTags: Crunchyroll\,premiere\,Screening\
n\nKoichi Haimawari is a dull college student who aspires to be a hero but
has given up on his dream. Although 80% of the worlds population has s
uperhuman powers called Quirks\, few are chosen to become heroes and prote
ct people. Everything changes for Koichi when he and Pop☆Step are saved
by the vigilante Knuckleduster and get recruited to become vigilantes them
selves!
LOCATION:Relations Panels/Premiers - Ballroom 3
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Aniplex of America Games Panel
DTSTART:20250420T123000
DTEND:20250420T133000
CATEGORIES:Aniplex,Industry
DESCRIPTION:Track: Industry Panel\nTags: Aniplex\,Industry\n\nWant to leve
l up your fandom for your favorite Aniplex of America titles? Join us for
the Aniplex of America Games panel where you can learn about the latest ne
ws and updates on all your favorite Aniplex of America game titles!
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Publang: Inside the BL Publishing Industry (18+)
DTSTART:20250420T140000
DTEND:20250420T150000
CATEGORIES:BL,Industry,Publang
DESCRIPTION:Track: Industry Panel\nTags: BL\,Industry\,Publang\n\nEver won
dered what happens when passionate\, life-long fujoshis come together? The
y build a BL publishing powerhouse! Publang proudly brings you hit Korean
BL novels like Payback\, Define the Relationship\, and Semantic Error\, al
ong with Danmei series like Wine and Gun through partnerships. Join us for
exclusive new license reveals and exciting prizes!
LOCATION:Relations Panels - 437-439
STATUS:ACTIVE
END:VEVENT
END:VCALENDAR
-113
View File
@@ -1,113 +0,0 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Main Stage Schedule//eventeny.com//
X-WR-CALNAME:Main Stage
BEGIN:VEVENT
SUMMARY:Opening Ceremonies Doors Open
DTSTART:20250418T093000
DTEND:20250418T100000
CATEGORIES:Ceremonies
DESCRIPTION:Track: Main Stage\nTags: Ceremonies\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Opening Ceremonies
DTSTART:20250418T100000
DTEND:20250418T110000
CATEGORIES:Ceremonies,SC-ALL
DESCRIPTION:Track: Main Stage\nTags: Ceremonies\,SC-ALL\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Friday Dance
DTSTART:20250418T220000
DTEND:20250419T040000
CATEGORIES:Dance
DESCRIPTION:Track: Main Stage\nTags: Dance\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Friday Dance
DTSTART:20250418T220000
DTEND:20250419T040000
CATEGORIES:Dance
DESCRIPTION:Track: Main Stage\nTags: Dance\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:AMV Contest Doors Open
DTSTART:20250419T120000
DTEND:20250419T123000
CATEGORIES:AMV,Contest
DESCRIPTION:Track: Main Stage\nTags: AMV\,Contest\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:AMV Contest
DTSTART:20250419T123000
DTEND:20250419T150000
CATEGORIES:AMV,Contest,SC-13
DESCRIPTION:Track: Main Stage\nTags: AMV\,Contest\,SC-13\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Saturday Dance
DTSTART:20250419T230000
DTEND:20250420T040000
CATEGORIES:Dance
DESCRIPTION:Track: Main Stage\nTags: Dance\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Saturday Dance
DTSTART:20250419T230000
DTEND:20250420T040000
CATEGORIES:Dance
DESCRIPTION:Track: Main Stage\nTags: Dance\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:AMV Winners Showcase Doors Open
DTSTART:20250420T130000
DTEND:20250420T133000
CATEGORIES:AMV,Contest
DESCRIPTION:Track: Main Stage\nTags: AMV\,Contest\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:AMV Winners Showcase
DTSTART:20250420T133000
DTEND:20250420T143000
CATEGORIES:AMV,Contest,SC-13
DESCRIPTION:Track: Main Stage\nTags: AMV\,Contest\,SC-13\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Closing Ceremonies Doors Open
DTSTART:20250420T153000
DTEND:20250420T160000
CATEGORIES:Ceremonies
DESCRIPTION:Track: Main Stage\nTags: Ceremonies\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Closing Ceremonies
DTSTART:20250420T160000
DTEND:20250420T170000
CATEGORIES:Ceremonies,SC-ALL
DESCRIPTION:Track: Main Stage\nTags: Ceremonies\,SC-ALL\n\n
LOCATION:Mainstage - 4AB
STATUS:ACTIVE
END:VEVENT
END:VCALENDAR
File diff suppressed because it is too large Load Diff
-32
View File
@@ -1,32 +0,0 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Summit Stage Schedule//eventeny.com//
X-WR-CALNAME:Summit Stage
BEGIN:VEVENT
SUMMARY:18+ Cosplay Skit Contest
DTSTART:20250418T123000
DTEND:20250418T141500
CATEGORIES:Contest,Cosplay,SC-MA
DESCRIPTION:Track: Summit Stage\nTags: Contest\,Cosplay\,SC-MA\n\n
LOCATION:Summit Stage
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Cosplay Contest Doors Open
DTSTART:20250419T163000
DTEND:20250419T170000
CATEGORIES:Contest,Cosplay
DESCRIPTION:Track: Summit Stage\nTags: Contest\,Cosplay\n\n
LOCATION:Summit Stage
STATUS:ACTIVE
END:VEVENT
BEGIN:VEVENT
SUMMARY:Cosplay Contest
DTSTART:20250419T170000
DTEND:20250419T200000
CATEGORIES:Contest,Cosplay,SC-13
DESCRIPTION:Track: Summit Stage\nTags: Contest\,Cosplay\,SC-13\n\n
LOCATION:Summit Stage
STATUS:ACTIVE
END:VEVENT
END:VCALENDAR
Generated
+588 -25
View File
@@ -1,34 +1,168 @@
# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. # This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand.
[[package]] [[package]]
name = "backports-zoneinfo" name = "aiohappyeyeballs"
version = "0.2.1" version = "2.6.1"
description = "Backport of the standard library zoneinfo module" description = "Happy Eyeballs for asyncio"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.9"
groups = ["main"] groups = ["main"]
markers = "python_version == \"3.8\""
files = [ files = [
{file = "backports.zoneinfo-0.2.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:da6013fd84a690242c310d77ddb8441a559e9cb3d3d59ebac9aca1a57b2e18bc"}, {file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"},
{file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:89a48c0d158a3cc3f654da4c2de1ceba85263fafb861b98b59040a5086259722"}, {file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"},
{file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1c5742112073a563c81f786e77514969acb58649bcdf6cdf0b4ed31a348d4546"}, ]
{file = "backports.zoneinfo-0.2.1-cp36-cp36m-win32.whl", hash = "sha256:e8236383a20872c0cdf5a62b554b27538db7fa1bbec52429d8d106effbaeca08"},
{file = "backports.zoneinfo-0.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8439c030a11780786a2002261569bdf362264f605dfa4d65090b64b05c9f79a7"}, [[package]]
{file = "backports.zoneinfo-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac"}, name = "aiohttp"
{file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:17746bd546106fa389c51dbea67c8b7c8f0d14b5526a579ca6ccf5ed72c526cf"}, version = "3.11.16"
{file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5c144945a7752ca544b4b78c8c41544cdfaf9786f25fe5ffb10e838e19a27570"}, description = "Async http client/server framework (asyncio)"
{file = "backports.zoneinfo-0.2.1-cp37-cp37m-win32.whl", hash = "sha256:e55b384612d93be96506932a786bbcde5a2db7a9e6a4bb4bffe8b733f5b9036b"}, optional = false
{file = "backports.zoneinfo-0.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a76b38c52400b762e48131494ba26be363491ac4f9a04c1b7e92483d169f6582"}, python-versions = ">=3.9"
{file = "backports.zoneinfo-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:8961c0f32cd0336fb8e8ead11a1f8cd99ec07145ec2931122faaac1c8f7fd987"}, groups = ["main"]
{file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e81b76cace8eda1fca50e345242ba977f9be6ae3945af8d46326d776b4cf78d1"}, files = [
{file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7b0a64cda4145548fed9efc10322770f929b944ce5cee6c0dfe0c87bf4c0c8c9"}, {file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb46bb0f24813e6cede6cc07b1961d4b04f331f7112a23b5e21f567da4ee50aa"},
{file = "backports.zoneinfo-0.2.1-cp38-cp38-win32.whl", hash = "sha256:1b13e654a55cd45672cb54ed12148cd33628f672548f373963b0bff67b217328"}, {file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:54eb3aead72a5c19fad07219acd882c1643a1027fbcdefac9b502c267242f955"},
{file = "backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:4a0f800587060bf8880f954dbef70de6c11bbe59c673c3d818921f042f9954a6"}, {file = "aiohttp-3.11.16-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:38bea84ee4fe24ebcc8edeb7b54bf20f06fd53ce4d2cc8b74344c5b9620597fd"},
{file = "backports.zoneinfo-0.2.1.tar.gz", hash = "sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2"}, {file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0666afbe984f6933fe72cd1f1c3560d8c55880a0bdd728ad774006eb4241ecd"},
{file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba92a2d9ace559a0a14b03d87f47e021e4fa7681dc6970ebbc7b447c7d4b7cd"},
{file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ad1d59fd7114e6a08c4814983bb498f391c699f3c78712770077518cae63ff7"},
{file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b88a2bf26965f2015a771381624dd4b0839034b70d406dc74fd8be4cc053e3"},
{file = "aiohttp-3.11.16-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:576f5ca28d1b3276026f7df3ec841ae460e0fc3aac2a47cbf72eabcfc0f102e1"},
{file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a2a450bcce4931b295fc0848f384834c3f9b00edfc2150baafb4488c27953de6"},
{file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:37dcee4906454ae377be5937ab2a66a9a88377b11dd7c072df7a7c142b63c37c"},
{file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4d0c970c0d602b1017e2067ff3b7dac41c98fef4f7472ec2ea26fd8a4e8c2149"},
{file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:004511d3413737700835e949433536a2fe95a7d0297edd911a1e9705c5b5ea43"},
{file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:c15b2271c44da77ee9d822552201180779e5e942f3a71fb74e026bf6172ff287"},
{file = "aiohttp-3.11.16-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad9509ffb2396483ceacb1eee9134724443ee45b92141105a4645857244aecc8"},
{file = "aiohttp-3.11.16-cp310-cp310-win32.whl", hash = "sha256:634d96869be6c4dc232fc503e03e40c42d32cfaa51712aee181e922e61d74814"},
{file = "aiohttp-3.11.16-cp310-cp310-win_amd64.whl", hash = "sha256:938f756c2b9374bbcc262a37eea521d8a0e6458162f2a9c26329cc87fdf06534"},
{file = "aiohttp-3.11.16-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8cb0688a8d81c63d716e867d59a9ccc389e97ac7037ebef904c2b89334407180"},
{file = "aiohttp-3.11.16-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0ad1fb47da60ae1ddfb316f0ff16d1f3b8e844d1a1e154641928ea0583d486ed"},
{file = "aiohttp-3.11.16-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:df7db76400bf46ec6a0a73192b14c8295bdb9812053f4fe53f4e789f3ea66bbb"},
{file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc3a145479a76ad0ed646434d09216d33d08eef0d8c9a11f5ae5cdc37caa3540"},
{file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d007aa39a52d62373bd23428ba4a2546eed0e7643d7bf2e41ddcefd54519842c"},
{file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6ddd90d9fb4b501c97a4458f1c1720e42432c26cb76d28177c5b5ad4e332601"},
{file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a2f451849e6b39e5c226803dcacfa9c7133e9825dcefd2f4e837a2ec5a3bb98"},
{file = "aiohttp-3.11.16-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8df6612df74409080575dca38a5237282865408016e65636a76a2eb9348c2567"},
{file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:78e6e23b954644737e385befa0deb20233e2dfddf95dd11e9db752bdd2a294d3"},
{file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:696ef00e8a1f0cec5e30640e64eca75d8e777933d1438f4facc9c0cdf288a810"},
{file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3538bc9fe1b902bef51372462e3d7c96fce2b566642512138a480b7adc9d508"},
{file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3ab3367bb7f61ad18793fea2ef71f2d181c528c87948638366bf1de26e239183"},
{file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:56a3443aca82abda0e07be2e1ecb76a050714faf2be84256dae291182ba59049"},
{file = "aiohttp-3.11.16-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:61c721764e41af907c9d16b6daa05a458f066015abd35923051be8705108ed17"},
{file = "aiohttp-3.11.16-cp311-cp311-win32.whl", hash = "sha256:3e061b09f6fa42997cf627307f220315e313ece74907d35776ec4373ed718b86"},
{file = "aiohttp-3.11.16-cp311-cp311-win_amd64.whl", hash = "sha256:745f1ed5e2c687baefc3c5e7b4304e91bf3e2f32834d07baaee243e349624b24"},
{file = "aiohttp-3.11.16-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:911a6e91d08bb2c72938bc17f0a2d97864c531536b7832abee6429d5296e5b27"},
{file = "aiohttp-3.11.16-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac13b71761e49d5f9e4d05d33683bbafef753e876e8e5a7ef26e937dd766713"},
{file = "aiohttp-3.11.16-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fd36c119c5d6551bce374fcb5c19269638f8d09862445f85a5a48596fd59f4bb"},
{file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d489d9778522fbd0f8d6a5c6e48e3514f11be81cb0a5954bdda06f7e1594b321"},
{file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69a2cbd61788d26f8f1e626e188044834f37f6ae3f937bd9f08b65fc9d7e514e"},
{file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd464ba806e27ee24a91362ba3621bfc39dbbb8b79f2e1340201615197370f7c"},
{file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ce63ae04719513dd2651202352a2beb9f67f55cb8490c40f056cea3c5c355ce"},
{file = "aiohttp-3.11.16-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09b00dd520d88eac9d1768439a59ab3d145065c91a8fab97f900d1b5f802895e"},
{file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7f6428fee52d2bcf96a8aa7b62095b190ee341ab0e6b1bcf50c615d7966fd45b"},
{file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:13ceac2c5cdcc3f64b9015710221ddf81c900c5febc505dbd8f810e770011540"},
{file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fadbb8f1d4140825069db3fedbbb843290fd5f5bc0a5dbd7eaf81d91bf1b003b"},
{file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6a792ce34b999fbe04a7a71a90c74f10c57ae4c51f65461a411faa70e154154e"},
{file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f4065145bf69de124accdd17ea5f4dc770da0a6a6e440c53f6e0a8c27b3e635c"},
{file = "aiohttp-3.11.16-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa73e8c2656a3653ae6c307b3f4e878a21f87859a9afab228280ddccd7369d71"},
{file = "aiohttp-3.11.16-cp312-cp312-win32.whl", hash = "sha256:f244b8e541f414664889e2c87cac11a07b918cb4b540c36f7ada7bfa76571ea2"},
{file = "aiohttp-3.11.16-cp312-cp312-win_amd64.whl", hash = "sha256:23a15727fbfccab973343b6d1b7181bfb0b4aa7ae280f36fd2f90f5476805682"},
{file = "aiohttp-3.11.16-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a3814760a1a700f3cfd2f977249f1032301d0a12c92aba74605cfa6ce9f78489"},
{file = "aiohttp-3.11.16-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9b751a6306f330801665ae69270a8a3993654a85569b3469662efaad6cf5cc50"},
{file = "aiohttp-3.11.16-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ad497f38a0d6c329cb621774788583ee12321863cd4bd9feee1effd60f2ad133"},
{file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca37057625693d097543bd88076ceebeb248291df9d6ca8481349efc0b05dcd0"},
{file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5abcbba9f4b463a45c8ca8b7720891200658f6f46894f79517e6cd11f3405ca"},
{file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f420bfe862fb357a6d76f2065447ef6f484bc489292ac91e29bc65d2d7a2c84d"},
{file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58ede86453a6cf2d6ce40ef0ca15481677a66950e73b0a788917916f7e35a0bb"},
{file = "aiohttp-3.11.16-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fdec0213244c39973674ca2a7f5435bf74369e7d4e104d6c7473c81c9bcc8c4"},
{file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:72b1b03fb4655c1960403c131740755ec19c5898c82abd3961c364c2afd59fe7"},
{file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:780df0d837276276226a1ff803f8d0fa5f8996c479aeef52eb040179f3156cbd"},
{file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ecdb8173e6c7aa09eee342ac62e193e6904923bd232e76b4157ac0bfa670609f"},
{file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a6db7458ab89c7d80bc1f4e930cc9df6edee2200127cfa6f6e080cf619eddfbd"},
{file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2540ddc83cc724b13d1838026f6a5ad178510953302a49e6d647f6e1de82bc34"},
{file = "aiohttp-3.11.16-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3b4e6db8dc4879015b9955778cfb9881897339c8fab7b3676f8433f849425913"},
{file = "aiohttp-3.11.16-cp313-cp313-win32.whl", hash = "sha256:493910ceb2764f792db4dc6e8e4b375dae1b08f72e18e8f10f18b34ca17d0979"},
{file = "aiohttp-3.11.16-cp313-cp313-win_amd64.whl", hash = "sha256:42864e70a248f5f6a49fdaf417d9bc62d6e4d8ee9695b24c5916cb4bb666c802"},
{file = "aiohttp-3.11.16-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bbcba75fe879ad6fd2e0d6a8d937f34a571f116a0e4db37df8079e738ea95c71"},
{file = "aiohttp-3.11.16-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:87a6e922b2b2401e0b0cf6b976b97f11ec7f136bfed445e16384fbf6fd5e8602"},
{file = "aiohttp-3.11.16-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccf10f16ab498d20e28bc2b5c1306e9c1512f2840f7b6a67000a517a4b37d5ee"},
{file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb3d0cc5cdb926090748ea60172fa8a213cec728bd6c54eae18b96040fcd6227"},
{file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d07502cc14ecd64f52b2a74ebbc106893d9a9717120057ea9ea1fd6568a747e7"},
{file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:776c8e959a01e5e8321f1dec77964cb6101020a69d5a94cd3d34db6d555e01f7"},
{file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0902e887b0e1d50424112f200eb9ae3dfed6c0d0a19fc60f633ae5a57c809656"},
{file = "aiohttp-3.11.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e87fd812899aa78252866ae03a048e77bd11b80fb4878ce27c23cade239b42b2"},
{file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0a950c2eb8ff17361abd8c85987fd6076d9f47d040ebffce67dce4993285e973"},
{file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:c10d85e81d0b9ef87970ecbdbfaeec14a361a7fa947118817fcea8e45335fa46"},
{file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:7951decace76a9271a1ef181b04aa77d3cc309a02a51d73826039003210bdc86"},
{file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:14461157d8426bcb40bd94deb0450a6fa16f05129f7da546090cebf8f3123b0f"},
{file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9756d9b9d4547e091f99d554fbba0d2a920aab98caa82a8fb3d3d9bee3c9ae85"},
{file = "aiohttp-3.11.16-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:87944bd16b7fe6160607f6a17808abd25f17f61ae1e26c47a491b970fb66d8cb"},
{file = "aiohttp-3.11.16-cp39-cp39-win32.whl", hash = "sha256:92b7ee222e2b903e0a4b329a9943d432b3767f2d5029dbe4ca59fb75223bbe2e"},
{file = "aiohttp-3.11.16-cp39-cp39-win_amd64.whl", hash = "sha256:17ae4664031aadfbcb34fd40ffd90976671fa0c0286e6c4113989f78bebab37a"},
{file = "aiohttp-3.11.16.tar.gz", hash = "sha256:16f8a2c9538c14a557b4d309ed4d0a7c60f0253e8ed7b6c9a2859a7582f8b1b8"},
]
[package.dependencies]
aiohappyeyeballs = ">=2.3.0"
aiosignal = ">=1.1.2"
async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""}
attrs = ">=17.3.0"
frozenlist = ">=1.1.1"
multidict = ">=4.5,<7.0"
propcache = ">=0.2.0"
yarl = ">=1.17.0,<2.0"
[package.extras]
speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.2.0) ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""]
[[package]]
name = "aiosignal"
version = "1.3.2"
description = "aiosignal: a list of registered asynchronous callbacks"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
{file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"},
{file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"},
]
[package.dependencies]
frozenlist = ">=1.1.0"
[[package]]
name = "async-timeout"
version = "5.0.1"
description = "Timeout context manager for asyncio programs"
optional = false
python-versions = ">=3.8"
groups = ["main"]
markers = "python_version < \"3.11\""
files = [
{file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"},
{file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"},
]
[[package]]
name = "attrs"
version = "25.3.0"
description = "Classes Without Boilerplate"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
{file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"},
{file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"},
] ]
[package.extras] [package.extras]
tzdata = ["tzdata"] benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"]
tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""]
[[package]] [[package]]
name = "certifi" name = "certifi"
@@ -160,6 +294,108 @@ files = [
pytz = "*" pytz = "*"
"zope.interface" = "*" "zope.interface" = "*"
[[package]]
name = "frozenlist"
version = "1.5.0"
description = "A list-like structure which implements collections.abc.MutableSequence"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
{file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"},
{file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"},
{file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"},
{file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"},
{file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"},
{file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"},
{file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"},
{file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"},
{file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"},
{file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"},
{file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"},
{file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"},
{file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"},
{file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"},
{file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"},
{file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"},
{file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"},
{file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"},
{file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"},
{file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"},
{file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"},
{file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"},
{file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"},
{file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"},
{file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"},
{file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"},
{file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"},
{file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"},
{file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"},
{file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"},
{file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"},
{file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"},
{file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"},
{file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"},
{file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"},
{file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"},
{file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"},
{file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"},
{file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"},
{file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"},
{file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"},
{file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"},
{file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"},
{file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"},
{file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"},
{file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"},
{file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"},
{file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"},
{file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"},
{file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"},
{file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"},
{file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"},
{file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"},
{file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"},
{file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"},
{file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"},
{file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"},
{file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"},
{file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"},
{file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"},
{file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"},
{file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"},
{file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"},
{file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"},
{file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"},
{file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"},
{file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"},
{file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"},
{file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"},
{file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"},
{file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"},
{file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"},
{file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"},
{file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"},
{file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"},
{file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"},
{file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"},
{file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"},
{file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"},
{file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"},
{file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"},
{file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"},
{file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"},
{file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"},
{file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"},
{file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"},
{file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"},
{file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"},
{file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"},
{file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"},
{file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"},
{file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"},
]
[[package]] [[package]]
name = "icalendar" name = "icalendar"
version = "6.1.3" version = "6.1.3"
@@ -173,7 +409,6 @@ files = [
] ]
[package.dependencies] [package.dependencies]
backports-zoneinfo = {version = "*", markers = "python_version < \"3.9\""}
python-dateutil = "*" python-dateutil = "*"
tzdata = "*" tzdata = "*"
@@ -195,6 +430,219 @@ files = [
[package.extras] [package.extras]
all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
[[package]]
name = "multidict"
version = "6.3.2"
description = "multidict implementation"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
{file = "multidict-6.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8b3dc0eec9304fa04d84a51ea13b0ec170bace5b7ddeaac748149efd316f1504"},
{file = "multidict-6.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9534f3d84addd3b6018fa83f97c9d4247aaa94ac917d1ed7b2523306f99f5c16"},
{file = "multidict-6.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a003ce1413ae01f0b8789c1c987991346a94620a4d22210f7a8fe753646d3209"},
{file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b43f7384e68b1b982c99f489921a459467b5584bdb963b25e0df57c9039d0ad"},
{file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d142ae84047262dc75c1f92eaf95b20680f85ce11d35571b4c97e267f96fadc4"},
{file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ec7e86fbc48aa1d6d686501a8547818ba8d645e7e40eaa98232a5d43ee4380ad"},
{file = "multidict-6.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe019fb437632b016e6cac67a7e964f1ef827ef4023f1ca0227b54be354da97e"},
{file = "multidict-6.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b60cb81214a9da7cfd8ae2853d5e6e47225ece55fe5833142fe0af321c35299"},
{file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:32d9e8ef2e0312d4e96ca9adc88e0675b6d8e144349efce4a7c95d5ccb6d88e0"},
{file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:335d584312e3fa43633d63175dfc1a5f137dd7aa03d38d1310237d54c3032774"},
{file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:b8df917faa6b8cac3d6870fc21cb7e4d169faca68e43ffe568c156c9c6408a4d"},
{file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:cc060b9b89b701dd8fedef5b99e1f1002b8cb95072693233a63389d37e48212d"},
{file = "multidict-6.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f2ce3be2500658f3c644494b934628bb0c82e549dde250d2119689ce791cc8b8"},
{file = "multidict-6.3.2-cp310-cp310-win32.whl", hash = "sha256:dbcb4490d8e74b484449abd51751b8f560dd0a4812eb5dacc6a588498222a9ab"},
{file = "multidict-6.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:06944f9ced30f8602be873563ed4df7e3f40958f60b2db39732c11d615a33687"},
{file = "multidict-6.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45a034f41fcd16968c0470d8912d293d7b0d0822fc25739c5c2ff7835b85bc56"},
{file = "multidict-6.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:352585cec45f5d83d886fc522955492bb436fca032b11d487b12d31c5a81b9e3"},
{file = "multidict-6.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:da9d89d293511fd0a83a90559dc131f8b3292b6975eb80feff19e5f4663647e2"},
{file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fa716592224aa652b9347a586cfe018635229074565663894eb4eb21f8307f"},
{file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0326278a44c56e94792475268e5cd3d47fbc0bd41ee56928c3bbb103ba7f58fe"},
{file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bb1ea87f7fe45e5079f6315e95d64d4ca8b43ef656d98bed63a02e3756853a22"},
{file = "multidict-6.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cff3c5a98d037024a9065aafc621a8599fad7b423393685dc83cf7a32f8b691"},
{file = "multidict-6.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed99834b053c655d980fb98029003cb24281e47a796052faad4543aa9e01b8e8"},
{file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7048440e505d2b4741e5d0b32bd2f427c901f38c7760fc245918be2cf69b3b85"},
{file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:27248c27b563f5889556da8a96e18e98a56ff807ac1a7d56cf4453c2c9e4cd91"},
{file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6323b4ba0e018bd266f776c35f3f0943fc4ee77e481593c9f93bd49888f24e94"},
{file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:81f7ce5ec7c27d0b45c10449c8f0fed192b93251e2e98cb0b21fec779ef1dc4d"},
{file = "multidict-6.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03bfcf2825b3bed0ba08a9d854acd18b938cab0d2dba3372b51c78e496bac811"},
{file = "multidict-6.3.2-cp311-cp311-win32.whl", hash = "sha256:f32c2790512cae6ca886920e58cdc8c784bdc4bb2a5ec74127c71980369d18dc"},
{file = "multidict-6.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:0b0c15e58e038a2cd75ef7cf7e072bc39b5e0488b165902efb27978984bbad70"},
{file = "multidict-6.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d1e0ba1ce1b8cc79117196642d95f4365e118eaf5fb85f57cdbcc5a25640b2a4"},
{file = "multidict-6.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:029bbd7d782251a78975214b78ee632672310f9233d49531fc93e8e99154af25"},
{file = "multidict-6.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d7db41e3b56817d9175264e5fe00192fbcb8e1265307a59f53dede86161b150e"},
{file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcab18e65cc555ac29981a581518c23311f2b1e72d8f658f9891590465383be"},
{file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d50eff89aa4d145a5486b171a2177042d08ea5105f813027eb1050abe91839f"},
{file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:643e57b403d3e240045a3681f9e6a04d35a33eddc501b4cbbbdbc9c70122e7bc"},
{file = "multidict-6.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d17b37b9715b30605b5bab1460569742d0c309e5c20079263b440f5d7746e7e"},
{file = "multidict-6.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68acd51fa94e63312b8ddf84bfc9c3d3442fe1f9988bbe1b6c703043af8867fe"},
{file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:347eea2852ab7f697cc5ed9b1aae96b08f8529cca0c6468f747f0781b1842898"},
{file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4d3f8e57027dcda84a1aa181501c15c45eab9566eb6fcc274cbd1e7561224f8"},
{file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:9ca57a841ffcf712e47875d026aa49d6e67f9560624d54b51628603700d5d287"},
{file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7cafdafb44c4e646118410368307693e49d19167e5f119cbe3a88697d2d1a636"},
{file = "multidict-6.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:430120c6ce3715a9c6075cabcee557daccbcca8ba25a9fedf05c7bf564532f2d"},
{file = "multidict-6.3.2-cp312-cp312-win32.whl", hash = "sha256:13bec31375235a68457ab887ce1bbf4f59d5810d838ae5d7e5b416242e1f3ed4"},
{file = "multidict-6.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:c3b6d7620e6e90c6d97eaf3a63bf7fbd2ba253aab89120a4a9c660bf2d675391"},
{file = "multidict-6.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b9ca24700322816ae0d426aa33671cf68242f8cc85cee0d0e936465ddaee90b5"},
{file = "multidict-6.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d9fbbe23667d596ff4f9f74d44b06e40ebb0ab6b262cf14a284f859a66f86457"},
{file = "multidict-6.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9cb602c5bea0589570ad3a4a6f2649c4f13cc7a1e97b4c616e5e9ff8dc490987"},
{file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93ca81dd4d1542e20000ed90f4cc84b7713776f620d04c2b75b8efbe61106c99"},
{file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:18b6310b5454c62242577a128c87df8897f39dd913311cf2e1298e47dfc089eb"},
{file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7a6dda57de1fc9aedfdb600a8640c99385cdab59a5716cb714b52b6005797f77"},
{file = "multidict-6.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d8ec42d03cc6b29845552a68151f9e623c541f1708328353220af571e24a247"},
{file = "multidict-6.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80681969cee2fa84dafeb53615d51d24246849984e3e87fbe4fe39956f2e23bf"},
{file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:01489b0c3592bb9d238e5690e9566db7f77a5380f054b57077d2c4deeaade0eb"},
{file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:522d9f1fd995d04dfedc0a40bca7e2591bc577d920079df50b56245a4a252c1c"},
{file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2014e9cf0b4e9c75bbad49c1758e5a9bf967a56184fc5fcc51527425baf5abba"},
{file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:78ced9fcbee79e446ff4bb3018ac7ba1670703de7873d9c1f6f9883db53c71bc"},
{file = "multidict-6.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1faf01af972bd01216a107c195f5294f9f393531bc3e4faddc9b333581255d4d"},
{file = "multidict-6.3.2-cp313-cp313-win32.whl", hash = "sha256:7a699ab13d8d8e1f885de1535b4f477fb93836c87168318244c2685da7b7f655"},
{file = "multidict-6.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:8666bb0d883310c83be01676e302587834dfd185b52758caeab32ef0eb387bc6"},
{file = "multidict-6.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:d82c95aabee29612b1c4f48b98be98181686eb7d6c0152301f72715705cc787b"},
{file = "multidict-6.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f47709173ea9e87a7fd05cd7e5cf1e5d4158924ff988a9a8e0fbd853705f0e68"},
{file = "multidict-6.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0c7f9d0276ceaab41b8ae78534ff28ea33d5de85db551cbf80c44371f2b55d13"},
{file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6eab22df44a25acab2e738f882f5ec551282ab45b2bbda5301e6d2cfb323036"},
{file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a947cb7c657f57874021b9b70c7aac049c877fb576955a40afa8df71d01a1390"},
{file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5faa346e8e1c371187cf345ab1e02a75889f9f510c9cbc575c31b779f7df084d"},
{file = "multidict-6.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc6e08d977aebf1718540533b4ba5b351ccec2db093370958a653b1f7f9219cc"},
{file = "multidict-6.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:98eab7acf55275b5bf09834125fa3a80b143a9f241cdcdd3f1295ffdc3c6d097"},
{file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:36863655630becc224375c0b99364978a0f95aebfb27fb6dd500f7fb5fb36e79"},
{file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d9c0979c096c0d46a963331b0e400d3a9e560e41219df4b35f0d7a2f28f39710"},
{file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0efc04f70f05e70e5945890767e8874da5953a196f5b07c552d305afae0f3bf6"},
{file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:2c519b3b82c34539fae3e22e4ea965869ac6b628794b1eb487780dde37637ab7"},
{file = "multidict-6.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:329160e301f2afd7b43725d3dda8a7ef8ee41d4ceac2083fc0d8c1cc8a4bd56b"},
{file = "multidict-6.3.2-cp313-cp313t-win32.whl", hash = "sha256:420e5144a5f598dad8db3128f1695cd42a38a0026c2991091dab91697832f8cc"},
{file = "multidict-6.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:875faded2861c7af2682c67088e6313fec35ede811e071c96d36b081873cea14"},
{file = "multidict-6.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2516c5eb5732d6c4e29fa93323bfdc55186895124bc569e2404e3820934be378"},
{file = "multidict-6.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:be5c8622e665cc5491c13c0fcd52915cdbae991a3514251d71129691338cdfb2"},
{file = "multidict-6.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3ef33150eea7953cfdb571d862cff894e0ad97ab80d97731eb4b9328fc32d52b"},
{file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40b357738ce46e998f1b1bad9c4b79b2a9755915f71b87a8c01ce123a22a4f99"},
{file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:27c60e059fcd3655a653ba99fec2556cd0260ec57f9cb138d3e6ffc413638a2e"},
{file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:629e7c5e75bde83e54a22c7043ce89d68691d1f103be6d09a1c82b870df3b4b8"},
{file = "multidict-6.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6c8fc97d893fdf1fff15a619fee8de2f31c9b289ef7594730e35074fa0cefb"},
{file = "multidict-6.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52081d2f27e0652265d4637b03f09b82f6da5ce5e1474f07dc64674ff8bfc04c"},
{file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:64529dc395b5fd0a7826ffa70d2d9a7f4abd8f5333d6aaaba67fdf7bedde9f21"},
{file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2b7c3fad827770840f5399348c89635ed6d6e9bba363baad7d3c7f86a9cf1da3"},
{file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:24aa42b1651c654ae9e5273e06c3b7ccffe9f7cc76fbde40c37e9ae65f170818"},
{file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:04ceea01e9991357164b12882e120ce6b4d63a0424bb9f9cd37910aa56d30830"},
{file = "multidict-6.3.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:943897a41160945416617db567d867ab34e9258adaffc56a25a4c3f99d919598"},
{file = "multidict-6.3.2-cp39-cp39-win32.whl", hash = "sha256:76157a9a0c5380aadd3b5ff7b8deee355ff5adecc66c837b444fa633b4d409a2"},
{file = "multidict-6.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:d091d123e44035cd5664554308477aff0b58db37e701e7598a67e907b98d1925"},
{file = "multidict-6.3.2-py3-none-any.whl", hash = "sha256:71409d4579f716217f23be2f5e7afca5ca926aaeb398aa11b72d793bff637a1f"},
{file = "multidict-6.3.2.tar.gz", hash = "sha256:c1035eea471f759fa853dd6e76aaa1e389f93b3e1403093fa0fd3ab4db490678"},
]
[package.dependencies]
typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""}
[[package]]
name = "propcache"
version = "0.3.1"
description = "Accelerated property cache"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
{file = "propcache-0.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f27785888d2fdd918bc36de8b8739f2d6c791399552333721b58193f68ea3e98"},
{file = "propcache-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4e89cde74154c7b5957f87a355bb9c8ec929c167b59c83d90654ea36aeb6180"},
{file = "propcache-0.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:730178f476ef03d3d4d255f0c9fa186cb1d13fd33ffe89d39f2cda4da90ceb71"},
{file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967a8eec513dbe08330f10137eacb427b2ca52118769e82ebcfcab0fba92a649"},
{file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b9145c35cc87313b5fd480144f8078716007656093d23059e8993d3a8fa730f"},
{file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e64e948ab41411958670f1093c0a57acfdc3bee5cf5b935671bbd5313bcf229"},
{file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:319fa8765bfd6a265e5fa661547556da381e53274bc05094fc9ea50da51bfd46"},
{file = "propcache-0.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c66d8ccbc902ad548312b96ed8d5d266d0d2c6d006fd0f66323e9d8f2dd49be7"},
{file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2d219b0dbabe75e15e581fc1ae796109b07c8ba7d25b9ae8d650da582bed01b0"},
{file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:cd6a55f65241c551eb53f8cf4d2f4af33512c39da5d9777694e9d9c60872f519"},
{file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9979643ffc69b799d50d3a7b72b5164a2e97e117009d7af6dfdd2ab906cb72cd"},
{file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4cf9e93a81979f1424f1a3d155213dc928f1069d697e4353edb8a5eba67c6259"},
{file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2fce1df66915909ff6c824bbb5eb403d2d15f98f1518e583074671a30fe0c21e"},
{file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4d0dfdd9a2ebc77b869a0b04423591ea8823f791293b527dc1bb896c1d6f1136"},
{file = "propcache-0.3.1-cp310-cp310-win32.whl", hash = "sha256:1f6cc0ad7b4560e5637eb2c994e97b4fa41ba8226069c9277eb5ea7101845b42"},
{file = "propcache-0.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:47ef24aa6511e388e9894ec16f0fbf3313a53ee68402bc428744a367ec55b833"},
{file = "propcache-0.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7f30241577d2fef2602113b70ef7231bf4c69a97e04693bde08ddab913ba0ce5"},
{file = "propcache-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:43593c6772aa12abc3af7784bff4a41ffa921608dd38b77cf1dfd7f5c4e71371"},
{file = "propcache-0.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a75801768bbe65499495660b777e018cbe90c7980f07f8aa57d6be79ea6f71da"},
{file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6f1324db48f001c2ca26a25fa25af60711e09b9aaf4b28488602776f4f9a744"},
{file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cdb0f3e1eb6dfc9965d19734d8f9c481b294b5274337a8cb5cb01b462dcb7e0"},
{file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb34d90aac9bfbced9a58b266f8946cb5935869ff01b164573a7634d39fbcb5"},
{file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35c7070eeec2cdaac6fd3fe245226ed2a6292d3ee8c938e5bb645b434c5f256"},
{file = "propcache-0.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b23c11c2c9e6d4e7300c92e022046ad09b91fd00e36e83c44483df4afa990073"},
{file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3e19ea4ea0bf46179f8a3652ac1426e6dcbaf577ce4b4f65be581e237340420d"},
{file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:bd39c92e4c8f6cbf5f08257d6360123af72af9f4da75a690bef50da77362d25f"},
{file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b0313e8b923b3814d1c4a524c93dfecea5f39fa95601f6a9b1ac96cd66f89ea0"},
{file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e861ad82892408487be144906a368ddbe2dc6297074ade2d892341b35c59844a"},
{file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:61014615c1274df8da5991a1e5da85a3ccb00c2d4701ac6f3383afd3ca47ab0a"},
{file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:71ebe3fe42656a2328ab08933d420df5f3ab121772eef78f2dc63624157f0ed9"},
{file = "propcache-0.3.1-cp311-cp311-win32.whl", hash = "sha256:58aa11f4ca8b60113d4b8e32d37e7e78bd8af4d1a5b5cb4979ed856a45e62005"},
{file = "propcache-0.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:9532ea0b26a401264b1365146c440a6d78269ed41f83f23818d4b79497aeabe7"},
{file = "propcache-0.3.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f78eb8422acc93d7b69964012ad7048764bb45a54ba7a39bb9e146c72ea29723"},
{file = "propcache-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:89498dd49c2f9a026ee057965cdf8192e5ae070ce7d7a7bd4b66a8e257d0c976"},
{file = "propcache-0.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:09400e98545c998d57d10035ff623266927cb784d13dd2b31fd33b8a5316b85b"},
{file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8efd8c5adc5a2c9d3b952815ff8f7710cefdcaf5f2c36d26aff51aeca2f12f"},
{file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2fe5c910f6007e716a06d269608d307b4f36e7babee5f36533722660e8c4a70"},
{file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0ab8cf8cdd2194f8ff979a43ab43049b1df0b37aa64ab7eca04ac14429baeb7"},
{file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:563f9d8c03ad645597b8d010ef4e9eab359faeb11a0a2ac9f7b4bc8c28ebef25"},
{file = "propcache-0.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb6e0faf8cb6b4beea5d6ed7b5a578254c6d7df54c36ccd3d8b3eb00d6770277"},
{file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1c5c7ab7f2bb3f573d1cb921993006ba2d39e8621019dffb1c5bc94cdbae81e8"},
{file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:050b571b2e96ec942898f8eb46ea4bfbb19bd5502424747e83badc2d4a99a44e"},
{file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e1c4d24b804b3a87e9350f79e2371a705a188d292fd310e663483af6ee6718ee"},
{file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e4fe2a6d5ce975c117a6bb1e8ccda772d1e7029c1cca1acd209f91d30fa72815"},
{file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:feccd282de1f6322f56f6845bf1207a537227812f0a9bf5571df52bb418d79d5"},
{file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ec314cde7314d2dd0510c6787326bbffcbdc317ecee6b7401ce218b3099075a7"},
{file = "propcache-0.3.1-cp312-cp312-win32.whl", hash = "sha256:7d2d5a0028d920738372630870e7d9644ce437142197f8c827194fca404bf03b"},
{file = "propcache-0.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:88c423efef9d7a59dae0614eaed718449c09a5ac79a5f224a8b9664d603f04a3"},
{file = "propcache-0.3.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f1528ec4374617a7a753f90f20e2f551121bb558fcb35926f99e3c42367164b8"},
{file = "propcache-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc1915ec523b3b494933b5424980831b636fe483d7d543f7afb7b3bf00f0c10f"},
{file = "propcache-0.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a110205022d077da24e60b3df8bcee73971be9575dec5573dd17ae5d81751111"},
{file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d249609e547c04d190e820d0d4c8ca03ed4582bcf8e4e160a6969ddfb57b62e5"},
{file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ced33d827625d0a589e831126ccb4f5c29dfdf6766cac441d23995a65825dcb"},
{file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4114c4ada8f3181af20808bedb250da6bae56660e4b8dfd9cd95d4549c0962f7"},
{file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:975af16f406ce48f1333ec5e912fe11064605d5c5b3f6746969077cc3adeb120"},
{file = "propcache-0.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a34aa3a1abc50740be6ac0ab9d594e274f59960d3ad253cd318af76b996dd654"},
{file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9cec3239c85ed15bfaded997773fdad9fb5662b0a7cbc854a43f291eb183179e"},
{file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:05543250deac8e61084234d5fc54f8ebd254e8f2b39a16b1dce48904f45b744b"},
{file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cb5918253912e088edbf023788de539219718d3b10aef334476b62d2b53de53"},
{file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f3bbecd2f34d0e6d3c543fdb3b15d6b60dd69970c2b4c822379e5ec8f6f621d5"},
{file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aca63103895c7d960a5b9b044a83f544b233c95e0dcff114389d64d762017af7"},
{file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a0a9898fdb99bf11786265468571e628ba60af80dc3f6eb89a3545540c6b0ef"},
{file = "propcache-0.3.1-cp313-cp313-win32.whl", hash = "sha256:3a02a28095b5e63128bcae98eb59025924f121f048a62393db682f049bf4ac24"},
{file = "propcache-0.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:813fbb8b6aea2fc9659815e585e548fe706d6f663fa73dff59a1677d4595a037"},
{file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a444192f20f5ce8a5e52761a031b90f5ea6288b1eef42ad4c7e64fef33540b8f"},
{file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fbe94666e62ebe36cd652f5fc012abfbc2342de99b523f8267a678e4dfdee3c"},
{file = "propcache-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f011f104db880f4e2166bcdcf7f58250f7a465bc6b068dc84c824a3d4a5c94dc"},
{file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e584b6d388aeb0001d6d5c2bd86b26304adde6d9bb9bfa9c4889805021b96de"},
{file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a17583515a04358b034e241f952f1715243482fc2c2945fd99a1b03a0bd77d6"},
{file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5aed8d8308215089c0734a2af4f2e95eeb360660184ad3912686c181e500b2e7"},
{file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8e309ff9a0503ef70dc9a0ebd3e69cf7b3894c9ae2ae81fc10943c37762458"},
{file = "propcache-0.3.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b655032b202028a582d27aeedc2e813299f82cb232f969f87a4fde491a233f11"},
{file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f64d91b751df77931336b5ff7bafbe8845c5770b06630e27acd5dbb71e1931c"},
{file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:19a06db789a4bd896ee91ebc50d059e23b3639c25d58eb35be3ca1cbe967c3bf"},
{file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:bef100c88d8692864651b5f98e871fb090bd65c8a41a1cb0ff2322db39c96c27"},
{file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:87380fb1f3089d2a0b8b00f006ed12bd41bd858fabfa7330c954c70f50ed8757"},
{file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e474fc718e73ba5ec5180358aa07f6aded0ff5f2abe700e3115c37d75c947e18"},
{file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:17d1c688a443355234f3c031349da69444be052613483f3e4158eef751abcd8a"},
{file = "propcache-0.3.1-cp313-cp313t-win32.whl", hash = "sha256:359e81a949a7619802eb601d66d37072b79b79c2505e6d3fd8b945538411400d"},
{file = "propcache-0.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e7fb9a84c9abbf2b2683fa3e7b0d7da4d8ecf139a1c635732a8bda29c5214b0e"},
{file = "propcache-0.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ed5f6d2edbf349bd8d630e81f474d33d6ae5d07760c44d33cd808e2f5c8f4ae6"},
{file = "propcache-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:668ddddc9f3075af019f784456267eb504cb77c2c4bd46cc8402d723b4d200bf"},
{file = "propcache-0.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0c86e7ceea56376216eba345aa1fc6a8a6b27ac236181f840d1d7e6a1ea9ba5c"},
{file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83be47aa4e35b87c106fc0c84c0fc069d3f9b9b06d3c494cd404ec6747544894"},
{file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:27c6ac6aa9fc7bc662f594ef380707494cb42c22786a558d95fcdedb9aa5d035"},
{file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64a956dff37080b352c1c40b2966b09defb014347043e740d420ca1eb7c9b908"},
{file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82de5da8c8893056603ac2d6a89eb8b4df49abf1a7c19d536984c8dd63f481d5"},
{file = "propcache-0.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3c3a203c375b08fd06a20da3cf7aac293b834b6f4f4db71190e8422750cca5"},
{file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b303b194c2e6f171cfddf8b8ba30baefccf03d36a4d9cab7fd0bb68ba476a3d7"},
{file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:916cd229b0150129d645ec51614d38129ee74c03293a9f3f17537be0029a9641"},
{file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a461959ead5b38e2581998700b26346b78cd98540b5524796c175722f18b0294"},
{file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:069e7212890b0bcf9b2be0a03afb0c2d5161d91e1bf51569a64f629acc7defbf"},
{file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ef2e4e91fb3945769e14ce82ed53007195e616a63aa43b40fb7ebaaf907c8d4c"},
{file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8638f99dca15b9dff328fb6273e09f03d1c50d9b6512f3b65a4154588a7595fe"},
{file = "propcache-0.3.1-cp39-cp39-win32.whl", hash = "sha256:6f173bbfe976105aaa890b712d1759de339d8a7cef2fc0a1714cc1a1e1c47f64"},
{file = "propcache-0.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:603f1fe4144420374f1a69b907494c3acbc867a581c2d49d4175b0de7cc64566"},
{file = "propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40"},
{file = "propcache-0.3.1.tar.gz", hash = "sha256:40d980c33765359098837527e18eddefc9a24cea5b45e078a7f3bb5b032c6ecf"},
]
[[package]] [[package]]
name = "python-dateutil" name = "python-dateutil"
version = "2.9.0.post0" version = "2.9.0.post0"
@@ -277,6 +725,19 @@ files = [
{file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
] ]
[[package]]
name = "typing-extensions"
version = "4.13.1"
description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
groups = ["main"]
markers = "python_version < \"3.11\""
files = [
{file = "typing_extensions-4.13.1-py3-none-any.whl", hash = "sha256:4b6cf02909eb5495cfbc3f6e8fd49217e6cc7944e145cdda8caa3734777f9e69"},
{file = "typing_extensions-4.13.1.tar.gz", hash = "sha256:98795af00fb9640edec5b8e31fc647597b4691f099ad75f469a2616be1a76dff"},
]
[[package]] [[package]]
name = "tzdata" name = "tzdata"
version = "2025.2" version = "2025.2"
@@ -307,6 +768,108 @@ h2 = ["h2 (>=4,<5)"]
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
zstd = ["zstandard (>=0.18.0)"] zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "yarl"
version = "1.19.0"
description = "Yet another URL library"
optional = false
python-versions = ">=3.9"
groups = ["main"]
files = [
{file = "yarl-1.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0bae32f8ebd35c04d6528cedb4a26b8bf25339d3616b04613b97347f919b76d3"},
{file = "yarl-1.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8015a076daf77823e7ebdcba474156587391dab4e70c732822960368c01251e6"},
{file = "yarl-1.19.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9973ac95327f5d699eb620286c39365990b240031672b5c436a4cd00539596c5"},
{file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd4b5fbd7b9dde785cfeb486b8cca211a0b138d4f3a7da27db89a25b3c482e5c"},
{file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:75460740005de5a912b19f657848aef419387426a40f581b1dc9fac0eb9addb5"},
{file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:57abd66ca913f2cfbb51eb3dbbbac3648f1f6983f614a4446e0802e241441d2a"},
{file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46ade37911b7c99ce28a959147cb28bffbd14cea9e7dd91021e06a8d2359a5aa"},
{file = "yarl-1.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8346ec72ada749a6b5d82bff7be72578eab056ad7ec38c04f668a685abde6af0"},
{file = "yarl-1.19.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e4cb14a6ee5b6649ccf1c6d648b4da9220e8277d4d4380593c03cc08d8fe937"},
{file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:66fc1c2926a73a2fb46e4b92e3a6c03904d9bc3a0b65e01cb7d2b84146a8bd3b"},
{file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:5a70201dd1e0a4304849b6445a9891d7210604c27e67da59091d5412bc19e51c"},
{file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e4807aab1bdeab6ae6f296be46337a260ae4b1f3a8c2fcd373e236b4b2b46efd"},
{file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ae584afe81a1de4c1bb06672481050f0d001cad13163e3c019477409f638f9b7"},
{file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:30eaf4459df6e91f21b2999d1ee18f891bcd51e3cbe1de301b4858c84385895b"},
{file = "yarl-1.19.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0e617d45d03c8dec0dfce6f51f3e1b8a31aa81aaf4a4d1442fdb232bcf0c6d8c"},
{file = "yarl-1.19.0-cp310-cp310-win32.whl", hash = "sha256:32ba32d0fa23893fd8ea8d05bdb05de6eb19d7f2106787024fd969f4ba5466cb"},
{file = "yarl-1.19.0-cp310-cp310-win_amd64.whl", hash = "sha256:545575ecfcd465891b51546c2bcafdde0acd2c62c2097d8d71902050b20e4922"},
{file = "yarl-1.19.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:163ff326680de5f6d4966954cf9e3fe1bf980f5fee2255e46e89b8cf0f3418b5"},
{file = "yarl-1.19.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a626c4d9cca298d1be8625cff4b17004a9066330ac82d132bbda64a4c17c18d3"},
{file = "yarl-1.19.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:961c3e401ea7f13d02b8bb7cb0c709152a632a6e14cdc8119e9c6ee5596cd45d"},
{file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a39d7b807ab58e633ed760f80195cbd145b58ba265436af35f9080f1810dfe64"},
{file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4228978fb59c6b10f60124ba8e311c26151e176df364e996f3f8ff8b93971b5"},
{file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9ba536b17ecf3c74a94239ec1137a3ad3caea8c0e4deb8c8d2ffe847d870a8c5"},
{file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a251e00e445d2e9df7b827c9843c0b87f58a3254aaa3f162fb610747491fe00f"},
{file = "yarl-1.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9b92431d8b4d4ca5ccbfdbac95b05a3a6cd70cd73aa62f32f9627acfde7549c"},
{file = "yarl-1.19.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec2f56edaf476f70b5831bbd59700b53d9dd011b1f77cd4846b5ab5c5eafdb3f"},
{file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:acf9b92c4245ac8b59bc7ec66a38d3dcb8d1f97fac934672529562bb824ecadb"},
{file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:57711f1465c06fee8825b95c0b83e82991e6d9425f9a042c3c19070a70ac92bf"},
{file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:528e86f5b1de0ad8dd758ddef4e0ed24f5d946d4a1cef80ffb2d4fca4e10f122"},
{file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3b77173663e075d9e5a57e09d711e9da2f3266be729ecca0b8ae78190990d260"},
{file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d8717924cf0a825b62b1a96fc7d28aab7f55a81bf5338b8ef41d7a76ab9223e9"},
{file = "yarl-1.19.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0df9f0221a78d858793f40cbea3915c29f969c11366646a92ca47e080a14f881"},
{file = "yarl-1.19.0-cp311-cp311-win32.whl", hash = "sha256:8b3ade62678ee2c7c10dcd6be19045135e9badad53108f7d2ed14896ee396045"},
{file = "yarl-1.19.0-cp311-cp311-win_amd64.whl", hash = "sha256:0626ee31edb23ac36bdffe607231de2cca055ad3a5e2dc5da587ef8bc6a321bc"},
{file = "yarl-1.19.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7b687c334da3ff8eab848c9620c47a253d005e78335e9ce0d6868ed7e8fd170b"},
{file = "yarl-1.19.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b0fe766febcf523a2930b819c87bb92407ae1368662c1bc267234e79b20ff894"},
{file = "yarl-1.19.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:742ceffd3c7beeb2b20d47cdb92c513eef83c9ef88c46829f88d5b06be6734ee"},
{file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2af682a1e97437382ee0791eacbf540318bd487a942e068e7e0a6c571fadbbd3"},
{file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:63702f1a098d0eaaea755e9c9d63172be1acb9e2d4aeb28b187092bcc9ca2d17"},
{file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3560dcba3c71ae7382975dc1e912ee76e50b4cd7c34b454ed620d55464f11876"},
{file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:68972df6a0cc47c8abaf77525a76ee5c5f6ea9bbdb79b9565b3234ded3c5e675"},
{file = "yarl-1.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5684e7ff93ea74e47542232bd132f608df4d449f8968fde6b05aaf9e08a140f9"},
{file = "yarl-1.19.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8182ad422bfacdebd4759ce3adc6055c0c79d4740aea1104e05652a81cd868c6"},
{file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aee5b90a5a9b71ac57400a7bdd0feaa27c51e8f961decc8d412e720a004a1791"},
{file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:8c0b2371858d5a814b08542d5d548adb03ff2d7ab32f23160e54e92250961a72"},
{file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cd430c2b7df4ae92498da09e9b12cad5bdbb140d22d138f9e507de1aa3edfea3"},
{file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a93208282c0ccdf73065fd76c6c129bd428dba5ff65d338ae7d2ab27169861a0"},
{file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:b8179280cdeb4c36eb18d6534a328f9d40da60d2b96ac4a295c5f93e2799e9d9"},
{file = "yarl-1.19.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eda3c2b42dc0c389b7cfda2c4df81c12eeb552019e0de28bde8f913fc3d1fcf3"},
{file = "yarl-1.19.0-cp312-cp312-win32.whl", hash = "sha256:57f3fed859af367b9ca316ecc05ce79ce327d6466342734305aa5cc380e4d8be"},
{file = "yarl-1.19.0-cp312-cp312-win_amd64.whl", hash = "sha256:5507c1f7dd3d41251b67eecba331c8b2157cfd324849879bebf74676ce76aff7"},
{file = "yarl-1.19.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:59281b9ed27bc410e0793833bcbe7fc149739d56ffa071d1e0fe70536a4f7b61"},
{file = "yarl-1.19.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d27a6482ad5e05e8bafd47bf42866f8a1c0c3345abcb48d4511b3c29ecc197dc"},
{file = "yarl-1.19.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7a8e19fd5a6fdf19a91f2409665c7a089ffe7b9b5394ab33c0eec04cbecdd01f"},
{file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cda34ab19099c3a1685ad48fe45172536610c312b993310b5f1ca3eb83453b36"},
{file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7908a25d33f94852b479910f9cae6cdb9e2a509894e8d5f416c8342c0253c397"},
{file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e66c14d162bac94973e767b24de5d7e6c5153f7305a64ff4fcba701210bcd638"},
{file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c03607bf932aa4cfae371e2dc9ca8b76faf031f106dac6a6ff1458418140c165"},
{file = "yarl-1.19.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9931343d1c1f4e77421687b6b94bbebd8a15a64ab8279adf6fbb047eff47e536"},
{file = "yarl-1.19.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:262087a8a0d73e1d169d45c2baf968126f93c97cf403e1af23a7d5455d52721f"},
{file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:70f384921c24e703d249a6ccdabeb57dd6312b568b504c69e428a8dd3e8e68ca"},
{file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:756b9ea5292a2c180d1fe782a377bc4159b3cfefaca7e41b5b0a00328ef62fa9"},
{file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cbeb9c145d534c240a63b6ecc8a8dd451faeb67b3dc61d729ec197bb93e29497"},
{file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:087ae8f8319848c18e0d114d0f56131a9c017f29200ab1413b0137ad7c83e2ae"},
{file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362f5480ba527b6c26ff58cff1f229afe8b7fdd54ee5ffac2ab827c1a75fc71c"},
{file = "yarl-1.19.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f408d4b4315e814e5c3668094e33d885f13c7809cbe831cbdc5b1bb8c7a448f4"},
{file = "yarl-1.19.0-cp313-cp313-win32.whl", hash = "sha256:24e4c367ad69988a2283dd45ea88172561ca24b2326b9781e164eb46eea68345"},
{file = "yarl-1.19.0-cp313-cp313-win_amd64.whl", hash = "sha256:0110f91c57ab43d1538dfa92d61c45e33b84df9257bd08fcfcda90cce931cbc9"},
{file = "yarl-1.19.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85ac908cd5a97bbd3048cca9f1bf37b932ea26c3885099444f34b0bf5d5e9fa6"},
{file = "yarl-1.19.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6ba0931b559f1345df48a78521c31cfe356585670e8be22af84a33a39f7b9221"},
{file = "yarl-1.19.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5bc503e1c1fee1b86bcb58db67c032957a52cae39fe8ddd95441f414ffbab83e"},
{file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d995122dcaf180fd4830a9aa425abddab7c0246107c21ecca2fa085611fa7ce9"},
{file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:217f69e60a14da4eed454a030ea8283f8fbd01a7d6d81e57efb865856822489b"},
{file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aad67c8f13a4b79990082f72ef09c078a77de2b39899aabf3960a48069704973"},
{file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dff065a1a8ed051d7e641369ba1ad030d5a707afac54cf4ede7069b959898835"},
{file = "yarl-1.19.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada882e26b16ee651ab6544ce956f2f4beaed38261238f67c2a96db748e17741"},
{file = "yarl-1.19.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67a56b1acc7093451ea2de0687aa3bd4e58d6b4ef6cbeeaad137b45203deaade"},
{file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e97d2f0a06b39e231e59ebab0e6eec45c7683b339e8262299ac952707bdf7688"},
{file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a5288adb7c59d0f54e4ad58d86fb06d4b26e08a59ed06d00a1aac978c0e32884"},
{file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1efbf4d03e6eddf5da27752e0b67a8e70599053436e9344d0969532baa99df53"},
{file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:f228f42f29cc87db67020f7d71624102b2c837686e55317b16e1d3ef2747a993"},
{file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c515f7dd60ca724e4c62b34aeaa603188964abed2eb66bb8e220f7f104d5a187"},
{file = "yarl-1.19.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4815ec6d3d68a96557fa71bd36661b45ac773fb50e5cfa31a7e843edb098f060"},
{file = "yarl-1.19.0-cp39-cp39-win32.whl", hash = "sha256:9fac2dd1c5ecb921359d9546bc23a6dcc18c6acd50c6d96f118188d68010f497"},
{file = "yarl-1.19.0-cp39-cp39-win_amd64.whl", hash = "sha256:5864f539ce86b935053bfa18205fa08ce38e9a40ea4d51b19ce923345f0ed5db"},
{file = "yarl-1.19.0-py3-none-any.whl", hash = "sha256:a727101eb27f66727576630d02985d8a065d09cd0b5fcbe38a5793f71b2a97ef"},
{file = "yarl-1.19.0.tar.gz", hash = "sha256:01e02bb80ae0dbed44273c304095295106e1d9470460e773268a27d11e594892"},
]
[package.dependencies]
idna = ">=2.0"
multidict = ">=4.0"
propcache = ">=0.2.1"
[[package]] [[package]]
name = "zope-interface" name = "zope-interface"
version = "7.2" version = "7.2"
@@ -364,5 +927,5 @@ testing = ["coverage[toml]", "zope.event", "zope.testing"]
[metadata] [metadata]
lock-version = "2.1" lock-version = "2.1"
python-versions = ">=3.8" python-versions = ">=3.9"
content-hash = "6dc18425e69014e0863dc396d91475c6419e6e27b357735689eb11f55edc316a" content-hash = "b5f9acef18a15409718a71521e2a39a7cae20793f55425d28e46f6b37ad3b3cd"
+7 -4
View File
@@ -1,19 +1,22 @@
[project] [project]
name = "toical" name = "events-plus"
version = "0.1.0" version = "0.1.0"
description = "" description = ""
authors = [ authors = [
{name = "Your Name",email = "you@example.com"} {name = "Your Name",email = "you@example.com"}
] ]
readme = "README.md" readme = "README.md"
requires-python = ">=3.8" requires-python = ">=3.9"
dependencies = [ dependencies = [
"icalendar (>=6.1.3,<7.0.0)", "icalendar (>=6.1.3,<7.0.0)",
"datetime (>=5.5,<6.0)", "datetime (>=5.5,<6.0)",
"pytz (>=2025.2,<2026.0)", "requests (>=2.32.3,<3.0.0)",
"requests (>=2.32.3,<3.0.0)" "aiohttp (>=3.11.16,<4.0.0)"
] ]
[project.scripts]
generate-ics = 'events_plus.console:generate_all'
[build-system] [build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"] requires = ["poetry-core>=2.0.0,<3.0.0"]
+7
View File
@@ -0,0 +1,7 @@
from .scrapers.sakuracon import collect_sakuracon_events
import asyncio
def generate_all():
loop = asyncio.new_event_loop()
loop.run_until_complete(collect_sakuracon_events())
View File
+126
View File
@@ -0,0 +1,126 @@
import requests
from icalendar import Calendar, Event
from datetime import datetime
from collections import defaultdict
import asyncio
import aiohttp
import json
import os
EVENTNY_ENDPOINT = "https://www.eventeny.com/funcs/event/event-page-elements-2022-03-06.php"
SAK_BIZ_ID = "233997"
SAK_EVENT_ID = "13462"
async def collect_sakuracon_events():
events, tracks = await get_event_data()
cals = convert_events_to_icals(events, tracks)
write_ics(cals)
async def get_event_data():
# Send multiple POST requests to fetch schedule data
base_form_data = {
"post_type": "fetch_schedule_list",
"biz_id": SAK_BIZ_ID,
"event_id": SAK_EVENT_ID,
"tag_filter": "",
"track_filter": "50949|50946|50955|50947|50954|50950|53643|53642|50956|50948",
"embed": "1"
}
# why are the values here stupid and arbitrary? why does only the first request use date_group_setup 0?
# why do we send three requests when the time limits for the first clearly span the whole event?
# what are they hiding? who the hell knows? i just scraped it off the sakuracon site
requests_data = [
{**base_form_data, "date_group_setup": "0", "time_limit_min": "1744948800", "time_limit_max": "1745207999"},
{**base_form_data, "date_group_setup": "1", "time_limit_min": "1745035200", "time_limit_max": "1745121599"},
{**base_form_data, "date_group_setup": "1", "time_limit_min": "1745121600", "time_limit_max": "1745207999"}
]
all_events = []
all_tracks = {}
for form_data in requests_data:
response = requests.post(EVENTNY_ENDPOINT, data=form_data)
response.raise_for_status()
data = response.json()
all_events.extend(data['list'])
all_tracks.update(data['track'])
all_events = await insert_descriptions(all_events)
return all_events, all_tracks
async def get_description(eventid):
form_data = {
"post_type": "fetch_schedule_item",
"biz_id": SAK_BIZ_ID,
"event_id": SAK_EVENT_ID,
"ticket_cross_sell": "no",
"id": eventid
}
async with aiohttp.ClientSession() as session:
async with session.post(EVENTNY_ENDPOINT, data=form_data) as response:
data = await response.read()
results = json.loads(data.decode())
return results["schedule"]["overview"]["description"] or ""
async def insert_descriptions(events):
tasks = []
for event in events:
t = asyncio.create_task(
get_description(event["id"])
)
tasks.append(t)
descs = await asyncio.gather(*tasks)
for desc, event in zip(descs, events):
event["raw_description"] = desc
return events
def convert_events_to_icals(all_events, all_tracks) -> dict[str, Calendar]:
# Group events by track_title
calendars = defaultdict(Calendar)
for event in all_events:
track_id = event.get("tag_id")
track_title = all_tracks.get(track_id)
cal = calendars[track_title]
# Initialize calendar if empty
if not cal.get("prodid"):
cal.add("prodid", f"-//{track_title} Schedule - SC//")
cal.add("version", "2.0")
cal.add("X-WR-CALNAME", track_title)
# Create event
ical_event = Event()
ical_event.add("summary", event['title'])
ical_event.add("dtstart", datetime.fromisoformat(event['start_calendar']))
ical_event.add("dtend", datetime.fromisoformat(event['end_calendar']))
ical_event.add("location", event['location'].replace('&amp;', '&'))
ical_event.add("status", event['status'].upper())
# Add hashtags as categories if available
if 'hashtag_title' in event and event['hashtag_title']:
ical_event.add('categories', event['hashtag_title'])
tags_str = f"Tags: {','.join(event['hashtag_title'])}\n"
ical_event.add("description", f"Track: {track_title}\n{tags_str}\n{event['raw_description']}")
cal.add_component(ical_event)
return calendars
def write_ics(calendars, output_dir="output/sakuracon"):
# Write out each calendar to a .ics file
for track_title, cal in calendars.items():
filename = f"{output_dir}/calendar_{track_title.replace(' ', '_')}.ics"
os.makedirs(os.path.dirname(filename), exist_ok=True)
with open(filename, 'wb') as f:
f.write(cal.to_ical())
print(f"Wrote: {filename}")
-87
View File
@@ -1,87 +0,0 @@
import requests
from icalendar import Calendar, Event
from datetime import datetime
from collections import defaultdict
# Send multiple POST requests to fetch schedule data
url = "https://www.eventeny.com/funcs/event/event-page-elements-2022-03-06.php"
base_form_data = {
"post_type": "fetch_schedule_list",
"biz_id": "233997",
"event_id": "13462",
"tag_filter": "",
"track_filter": "50949|50946|50955|50947|50954|50950|53643|53642|50956|50948",
"embed": "1"
}
# why are the values here stupid and arbitrary? why does only the first request use date_group_setup 0?
# why do we send three requests when the time limits for the first clearly span the whole event?
# what are they hiding? who the hell knows? i just scraped it off the sakuracon site
requests_data = [
{**base_form_data, "date_group_setup": "0", "time_limit_min": "1744948800", "time_limit_max": "1745207999"},
{**base_form_data, "date_group_setup": "1", "time_limit_min": "1745035200", "time_limit_max": "1745121599"},
{**base_form_data, "date_group_setup": "1", "time_limit_min": "1745121600", "time_limit_max": "1745207999"}
]
all_events = []
all_tracks = {}
for form_data in requests_data:
response = requests.post(url, data=form_data)
response.raise_for_status()
data = response.json()
all_events.extend(data['list'])
all_tracks.update(data['track'])
# Group events by track_title
calendars = defaultdict(Calendar)
for event in all_events:
track_id = event.get("tag_id")
track_title = all_tracks.get(track_id)
cal = calendars[track_title]
# Initialize calendar if empty
if not cal.get("prodid"):
cal.add("prodid", f"-//{track_title} Schedule - SC//")
cal.add("version", "2.0")
cal.add("X-WR-CALNAME", track_title)
# Retrieve description for event
form_data = {
"post_type": "fetch_schedule_item",
"biz_id": "233997",
"event_id": "13462",
"ticket_cross_sell": "no",
"id": event["id"],
}
response = requests.post(url, data=form_data)
response.raise_for_status()
data = response.json()
desc = data["schedule"]["overview"]["description"]
tags_str = ""
# Create event
ical_event = Event()
ical_event.add("summary", event['title'])
ical_event.add("dtstart", datetime.fromisoformat(event['start_calendar']))
ical_event.add("dtend", datetime.fromisoformat(event['end_calendar']))
ical_event.add("location", event['location'].replace('&amp;', '&'))
ical_event.add("status", event['status'].upper())
# Add hashtags as categories if available
if 'hashtag_title' in event and event['hashtag_title']:
ical_event.add('categories', event['hashtag_title'])
tags_str = f"Tags: {','.join(event['hashtag_title'])}\n"
ical_event.add("description", f"Track: {track_title}\n{tags_str}\n{desc}")
cal.add_component(ical_event)
# Write out each calendar to a .ics file
for track_title, cal in calendars.items():
filename = f"calendar_{track_title.replace(' ', '_')}.ics"
with open(filename, 'wb') as f:
f.write(cal.to_ical())
print(f"Wrote: {filename}")