Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
be0ae9e90f | ||
| 7db13e3113 | |||
|
e8406f2e79
|
|||
|
104daeca73
|
|||
|
|
07117fbc31 | ||
| 51d5880916 | |||
|
4ae996bfd6
|
|||
|
|
773106958c | ||
| 8b7f79e671 | |||
|
029d4016be
|
@@ -50,8 +50,8 @@ jobs:
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
- name: Set up Python
|
||||
run: uv python install
|
||||
- name: "Set up Python"
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version-file: "pyproject.toml"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "kompage"
|
||||
version = "0.1.6"
|
||||
version = "0.1.9"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.13"
|
||||
@@ -29,7 +29,7 @@ url = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple/"
|
||||
|
||||
|
||||
[tool.bumpversion]
|
||||
current_version = "0.1.6"
|
||||
current_version = "0.1.9"
|
||||
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
||||
serialize = ["{major}.{minor}.{patch}"]
|
||||
search = "{current_version}"
|
||||
|
||||
@@ -1,96 +1,135 @@
|
||||
/* other styles are in magic.css */
|
||||
/* ========== GRID LAYOUT ========== */
|
||||
/* Modern UI refresh */
|
||||
|
||||
:root {
|
||||
--bg: #0b1020;
|
||||
--bg-soft: #0f172a;
|
||||
--surface: #111827;
|
||||
--surface-2: #0f172a;
|
||||
--text: #e5e7eb;
|
||||
--muted: #9ca3af;
|
||||
--ring: #60a5fa;
|
||||
--primary: #6366f1;
|
||||
--primary-600: #4f46e5;
|
||||
--success: #10b981;
|
||||
--danger: #ef4444;
|
||||
--warning: #f59e0b;
|
||||
}
|
||||
|
||||
* { box-sizing: border-box; }
|
||||
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: linear-gradient(180deg, var(--bg), var(--bg-soft));
|
||||
color: var(--text);
|
||||
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica Neue, Arial, "Apple Color Emoji", "Segoe UI Emoji";
|
||||
}
|
||||
|
||||
body {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 24px 16px 64px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.75rem;
|
||||
line-height: 2rem;
|
||||
margin: 0 0 16px 0;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* Layout */
|
||||
.results {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
||||
gap: 1em;
|
||||
margin-top: 20px;
|
||||
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
||||
gap: 16px;
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
/* Responsive: show 1 per row on small screens */
|
||||
@media screen and (max-width: 768px) {
|
||||
.results {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.results { grid-template-columns: 1fr; }
|
||||
}
|
||||
|
||||
/* ========== CARD STYLING ========== */
|
||||
/* Cards */
|
||||
.card {
|
||||
position: relative;
|
||||
padding: 10px;
|
||||
border: 1px solid #ccc;
|
||||
background: #fafafa;
|
||||
border: 1px solid rgba(255,255,255,0.06);
|
||||
background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));
|
||||
backdrop-filter: blur(6px);
|
||||
text-align: center;
|
||||
transition: box-shadow 0.2s transform 0.2s;
|
||||
border-radius: 10px;
|
||||
transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
|
||||
border-radius: 14px;
|
||||
box-shadow:
|
||||
0 1px 1px rgba(0,0,0,0.08),
|
||||
0 10px 20px rgba(0,0,0,0.15);
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
box-shadow: 0 0 10px #aaa;
|
||||
transform: scale(1.1);
|
||||
/* pop out by 10% */
|
||||
z-index: 2;
|
||||
/* ensure it appears above others */
|
||||
box-shadow:
|
||||
0 1px 1px rgba(0,0,0,0.08),
|
||||
0 16px 32px rgba(0,0,0,0.25);
|
||||
transform: translateY(-2px) scale(1.02);
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.card img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.card img { width: 100%; height: auto; border-radius: 8px; }
|
||||
|
||||
/* ========== ACTION BUTTONS ========== */
|
||||
.actions {
|
||||
margin-top: 10px;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
justify-content: space-between;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.actions .info {
|
||||
background-color: #007bff;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 0.5em 1em;
|
||||
button, .button {
|
||||
appearance: none;
|
||||
border: 1px solid rgba(255,255,255,0.1);
|
||||
background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.04));
|
||||
color: var(--text);
|
||||
padding: 8px 12px;
|
||||
border-radius: 10px;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
margin-right: 0.5em;
|
||||
transition: transform 0.15s ease, box-shadow 0.2s ease, border-color 0.2s ease;
|
||||
}
|
||||
|
||||
|
||||
.actions .info:hover {
|
||||
background-color: #0056b3;
|
||||
button:hover, .button:hover {
|
||||
transform: translateY(-1px);
|
||||
border-color: rgba(255,255,255,0.2);
|
||||
box-shadow: 0 8px 16px rgba(0,0,0,0.25);
|
||||
}
|
||||
|
||||
.actions .request {
|
||||
background-color: #28a745;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 0.5em 1em;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.actions .info, .refresh, .index, .request-page { border-color: rgba(99,102,241,0.4); }
|
||||
.actions .info { background: linear-gradient(180deg, rgba(99,102,241,0.35), rgba(99,102,241,0.2)); }
|
||||
.actions .request { border-color: rgba(16,185,129,0.4); background: linear-gradient(180deg, rgba(16,185,129,0.35), rgba(16,185,129,0.2)); }
|
||||
.delete-button { border-color: rgba(239,68,68,0.4); background: linear-gradient(180deg, rgba(239,68,68,0.35), rgba(239,68,68,0.2)); }
|
||||
.reset { border-color: rgba(239,68,68,0.4); background: linear-gradient(180deg, rgba(239,68,68,0.35), rgba(239,68,68,0.2)); color: #fff; }
|
||||
|
||||
.actions .request:hover {
|
||||
background-color: #1e7e34;
|
||||
}
|
||||
/* Page actions */
|
||||
.refresh, .index, .request-page { padding: 10px 14px; }
|
||||
/* ========== MODAL ========== */
|
||||
.modal {
|
||||
position: fixed;
|
||||
z-index: 1;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
z-index: 50;
|
||||
inset: 0;
|
||||
display: none;
|
||||
background: rgba(2,6,23,0.7);
|
||||
-webkit-backdrop-filter: blur(4px);
|
||||
backdrop-filter: blur(4px);
|
||||
}
|
||||
|
||||
.modal[style*="display: block"] { display: block; }
|
||||
|
||||
.modal-content {
|
||||
background-color: #fefefe;
|
||||
background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03));
|
||||
border: 1px solid rgba(255,255,255,0.1);
|
||||
margin: 5% auto;
|
||||
padding: 20px;
|
||||
border: 1px solid #888;
|
||||
width: 50%;
|
||||
border-radius: 10px;
|
||||
width: min(720px, 92%);
|
||||
border-radius: 16px;
|
||||
color: var(--text);
|
||||
box-shadow: 0 20px 40px rgba(0,0,0,0.4);
|
||||
}
|
||||
|
||||
.close {
|
||||
@@ -98,6 +137,8 @@
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
padding: 2px 8px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
/* ========== IMAGE CONTAINER ========== */
|
||||
@@ -144,48 +185,72 @@ body.nsfw-disabled .image-container.nsfw:hover img {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.download-badge {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
right: 8px;
|
||||
background-color: rgba(99,102,241,0.9);
|
||||
color: white;
|
||||
padding: 4px 8px;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
border-radius: 6px;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.search-bar {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
gap: 12px;
|
||||
margin-bottom: 20px;
|
||||
padding: 16px;
|
||||
border-radius: 16px;
|
||||
background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));
|
||||
border: 1px solid rgba(255,255,255,0.08);
|
||||
box-shadow: 0 10px 20px rgba(0,0,0,0.25);
|
||||
}
|
||||
|
||||
.search-bar select {
|
||||
padding: 5px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
.search-bar input[type="text"], .search-bar select {
|
||||
padding: 10px 12px;
|
||||
border-radius: 10px;
|
||||
border: 1px solid rgba(255,255,255,0.15);
|
||||
background: rgba(255,255,255,0.04);
|
||||
color: var(--text);
|
||||
outline: none;
|
||||
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
|
||||
.search-bar input[type="text"]:focus, .search-bar select:focus {
|
||||
border-color: var(--ring);
|
||||
box-shadow: 0 0 0 3px rgba(96,165,250,0.2);
|
||||
}
|
||||
|
||||
.dropdown-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: #f9f9f9;
|
||||
min-width: 160px;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
||||
z-index: 1;
|
||||
background-color: var(--surface);
|
||||
color: var(--text);
|
||||
min-width: 200px;
|
||||
box-shadow: 0 12px 28px rgba(0,0,0,0.35);
|
||||
border: 1px solid rgba(255,255,255,0.08);
|
||||
border-radius: 10px;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.dropdown-content .dropdown-item {
|
||||
padding: 8px 16px;
|
||||
padding: 10px 14px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dropdown-content .dropdown-item:hover {
|
||||
background-color: #f1f1f1;
|
||||
background-color: rgba(255,255,255,0.06);
|
||||
}
|
||||
|
||||
.dropdown-content.show {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.reset {
|
||||
/* Implement design here */
|
||||
background-color: #f44336;
|
||||
/* round the edges of the button */
|
||||
border-radius: 9px;
|
||||
|
||||
}
|
||||
.reset { border-radius: 10px; }
|
||||
|
||||
.selectors {
|
||||
display: flex;
|
||||
@@ -200,23 +265,38 @@ body.nsfw-disabled .image-container.nsfw:hover img {
|
||||
/* ========== KOMGA SPECIFIC STYLES ========== */
|
||||
|
||||
|
||||
.card.komga {
|
||||
border: 3px solid green;
|
||||
box-sizing: border-box;
|
||||
/* disable the request button for entries in Komga */
|
||||
/* only allow the info button to be clicked */
|
||||
opacity: 0.3;
|
||||
|
||||
.card.komga::after {
|
||||
content: 'In Komga';
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
background: rgba(16,185,129,0.9);
|
||||
color: white;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
padding: 4px 8px;
|
||||
border-radius: 6px;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.card.requested {
|
||||
border: 3px solid orange;
|
||||
box-sizing: border-box;
|
||||
/* disable the request button for entries in Komga */
|
||||
/* only allow the info button to be clicked */
|
||||
opacity: 0.3;
|
||||
.card.requested::after {
|
||||
content: 'Requested';
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
background: rgba(245,158,11,0.9);
|
||||
color: #111827;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
padding: 4px 8px;
|
||||
border-radius: 6px;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.card.komga { opacity: 0.6; }
|
||||
.card.requested { opacity: 0.8; }
|
||||
|
||||
.card.manga.requested .request {
|
||||
pointer-events: none;
|
||||
opacity: 0.5;
|
||||
@@ -236,9 +316,8 @@ body.nsfw-disabled .image-container.nsfw:hover img {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
background-color: #dc3545;
|
||||
color: white;
|
||||
border: none;
|
||||
border: 1px solid rgba(255,255,255,0.15);
|
||||
padding: 0.5em;
|
||||
cursor: pointer;
|
||||
border-radius: 50%;
|
||||
|
||||
@@ -330,7 +330,7 @@
|
||||
}
|
||||
|
||||
// Add download badge if applicable
|
||||
if (result.downloads && document.getElementById("checkAvailability").checked) {
|
||||
if (document.getElementById("checkAvailability").checked) {
|
||||
const downloadBadge = document.createElement('div');
|
||||
downloadBadge.className = 'download-badge';
|
||||
downloadBadge.textContent = `${result.downloads} Downloads`;
|
||||
|
||||
24
uv.lock
generated
24
uv.lock
generated
@@ -14,7 +14,7 @@ wheels = [
|
||||
[[package]]
|
||||
name = "anilistapi"
|
||||
version = "0.1.1"
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple/" }
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple" }
|
||||
dependencies = [
|
||||
{ name = "limit" },
|
||||
{ name = "requests" },
|
||||
@@ -279,7 +279,7 @@ wheels = [
|
||||
[[package]]
|
||||
name = "komcache"
|
||||
version = "0.1.2"
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple/" }
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple" }
|
||||
dependencies = [
|
||||
{ name = "komconfig" },
|
||||
{ name = "pymysql" },
|
||||
@@ -293,7 +293,7 @@ wheels = [
|
||||
[[package]]
|
||||
name = "komconfig"
|
||||
version = "0.2.2"
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple/" }
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple" }
|
||||
dependencies = [
|
||||
{ name = "omegaconf" },
|
||||
]
|
||||
@@ -305,7 +305,7 @@ wheels = [
|
||||
[[package]]
|
||||
name = "komgapi"
|
||||
version = "0.1.1"
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple/" }
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple" }
|
||||
dependencies = [
|
||||
{ name = "httpx" },
|
||||
{ name = "komconfig" },
|
||||
@@ -358,8 +358,8 @@ requires-dist = [
|
||||
|
||||
[[package]]
|
||||
name = "komsuite-nyaapy"
|
||||
version = "0.1.2"
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple/" }
|
||||
version = "0.1.3"
|
||||
source = { registry = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/simple" }
|
||||
dependencies = [
|
||||
{ name = "bencodepy" },
|
||||
{ name = "httpx" },
|
||||
@@ -367,9 +367,9 @@ dependencies = [
|
||||
{ name = "lxml" },
|
||||
{ name = "regex" },
|
||||
]
|
||||
sdist = { url = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/files/komsuite-nyaapy/0.1.2/komsuite_nyaapy-0.1.2.tar.gz", hash = "sha256:8f336ba3977a0833f611c4dc6d589b817ace657eb5c32d713390ad981d28274d" }
|
||||
sdist = { url = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/files/komsuite-nyaapy/0.1.3/komsuite_nyaapy-0.1.3.tar.gz", hash = "sha256:bb11afe8f722bea974760e17fb6c3f199de2bf298202718449ad2fa3fec88a41" }
|
||||
wheels = [
|
||||
{ url = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/files/komsuite-nyaapy/0.1.2/komsuite_nyaapy-0.1.2-py3-none-any.whl", hash = "sha256:3ea99891dd041a40613567a21adb6844d22532de429bd74b2fa8c062e038e7cb" },
|
||||
{ url = "https://git.theprivateserver.de/api/packages/KomSuite/pypi/files/komsuite-nyaapy/0.1.3/komsuite_nyaapy-0.1.3-py3-none-any.whl", hash = "sha256:f8d3628759c8074928b412ea43305b9a972bac6eaaa645fbc4ab83cb14bef400" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -403,10 +403,12 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/52/46/3572761efc1bd45fcafb44a63b3b0feeb5b3f0066886821e94b0254f9253/lxml-6.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d18a25b19ca7307045581b18b3ec9ead2b1db5ccd8719c291f0cd0a5cec6cb81", size = 4947559, upload-time = "2025-06-28T18:47:31.091Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/94/8a/5e40de920e67c4f2eef9151097deb9b52d86c95762d8ee238134aff2125d/lxml-6.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d4f0c66df4386b75d2ab1e20a489f30dc7fd9a06a896d64980541506086be1f1", size = 5102143, upload-time = "2025-06-28T18:47:33.612Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/7c/4b/20555bdd75d57945bdabfbc45fdb1a36a1a0ff9eae4653e951b2b79c9209/lxml-6.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9f4b481b6cc3a897adb4279216695150bbe7a44c03daba3c894f49d2037e0a24", size = 5021931, upload-time = "2025-06-26T16:26:47.503Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b6/6e/cf03b412f3763d4ca23b25e70c96a74cfece64cec3addf1c4ec639586b13/lxml-6.0.0-cp313-cp313-manylinux_2_27_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a78d6c9168f5bcb20971bf3329c2b83078611fbe1f807baadc64afc70523b3a", size = 5645469, upload-time = "2025-07-03T19:19:13.32Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d4/dd/39c8507c16db6031f8c1ddf70ed95dbb0a6d466a40002a3522c128aba472/lxml-6.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ae06fbab4f1bb7db4f7c8ca9897dc8db4447d1a2b9bee78474ad403437bcc29", size = 5247467, upload-time = "2025-06-26T16:26:49.998Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/4d/56/732d49def0631ad633844cfb2664563c830173a98d5efd9b172e89a4800d/lxml-6.0.0-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:1fa377b827ca2023244a06554c6e7dc6828a10aaf74ca41965c5d8a4925aebb4", size = 4720601, upload-time = "2025-06-26T16:26:52.564Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/8f/7f/6b956fab95fa73462bca25d1ea7fc8274ddf68fb8e60b78d56c03b65278e/lxml-6.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1676b56d48048a62ef77a250428d1f31f610763636e0784ba67a9740823988ca", size = 5060227, upload-time = "2025-06-26T16:26:55.054Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/97/06/e851ac2924447e8b15a294855caf3d543424364a143c001014d22c8ca94c/lxml-6.0.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:0e32698462aacc5c1cf6bdfebc9c781821b7e74c79f13e5ffc8bfe27c42b1abf", size = 4790637, upload-time = "2025-06-26T16:26:57.384Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/06/d4/fd216f3cd6625022c25b336c7570d11f4a43adbaf0a56106d3d496f727a7/lxml-6.0.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4d6036c3a296707357efb375cfc24bb64cd955b9ec731abf11ebb1e40063949f", size = 5662049, upload-time = "2025-07-03T19:19:16.409Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/52/03/0e764ce00b95e008d76b99d432f1807f3574fb2945b496a17807a1645dbd/lxml-6.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7488a43033c958637b1a08cddc9188eb06d3ad36582cebc7d4815980b47e27ef", size = 5272430, upload-time = "2025-06-26T16:27:00.031Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5f/01/d48cc141bc47bc1644d20fe97bbd5e8afb30415ec94f146f2f76d0d9d098/lxml-6.0.0-cp313-cp313-win32.whl", hash = "sha256:5fcd7d3b1d8ecb91445bd71b9c88bdbeae528fefee4f379895becfc72298d181", size = 3612896, upload-time = "2025-06-26T16:27:04.251Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/f4/87/6456b9541d186ee7d4cb53bf1b9a0d7f3b1068532676940fdd594ac90865/lxml-6.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:2f34687222b78fff795feeb799a7d44eca2477c3d9d3a46ce17d51a4f383e32e", size = 4013132, upload-time = "2025-06-26T16:27:06.415Z" },
|
||||
@@ -584,11 +586,11 @@ asyncio = [
|
||||
|
||||
[[package]]
|
||||
name = "typing-extensions"
|
||||
version = "4.14.0"
|
||||
version = "4.14.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/d1/bc/51647cd02527e87d05cb083ccc402f93e441606ff1f01739a62c8ad09ba5/typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4", size = 107423, upload-time = "2025-06-02T14:52:11.399Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36", size = 107673, upload-time = "2025-07-04T13:28:34.16Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/69/e0/552843e0d356fbb5256d21449fa957fa4eff3bbc135a74a691ee70c7c5da/typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af", size = 43839, upload-time = "2025-06-02T14:52:10.026Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76", size = 43906, upload-time = "2025-07-04T13:28:32.743Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
Reference in New Issue
Block a user