From 170d38ea08a788c808b3b71ec479bc2fd6fef168 Mon Sep 17 00:00:00 2001 From: Piotr Gaczkowski Date: Tue, 24 Mar 2026 15:39:18 +0100 Subject: [PATCH 1/2] feat: Add basic frontend --- .dockerignore | 6 + Dockerfile | 23 ++- README.md | 9 + fegen/__init__.py | 0 discourse.py => fegen/discourse.py | 1 + {docs => fegen/docs}/index.html | 0 {docs => fegen/docs}/static/css/style.css | 0 {docs => fegen/docs}/static/xml/label_12.xml | 0 {docs => fegen/docs}/static/xml/label_18.xml | 0 .../docs}/static/xml/label_18_flag.xml | 0 .../docs}/static/xml/label_18_ribbon.xml | 0 {docs => fegen/docs}/static/xml/prop.xml | 0 main.py => fegen/main.py | 17 +- .../template}/_base_template.html | 2 +- .../template}/_main_layout.html | 1 + .../template}/static/css/style.css | 0 .../template}/static/xml/label_12.xml | 0 .../template}/static/xml/label_18.xml | 0 .../template}/static/xml/label_18_flag.xml | 0 .../template}/static/xml/label_18_ribbon.xml | 0 .../template}/static/xml/prop.xml | 0 labeler/adapter/fastapi_srv.py | 18 ++ pyproject.toml | 6 +- requirements.txt | 4 - uv.lock | 190 +++++++++++++++++- 25 files changed, 248 insertions(+), 29 deletions(-) create mode 100644 .dockerignore create mode 100644 fegen/__init__.py rename discourse.py => fegen/discourse.py (99%) rename {docs => fegen/docs}/index.html (100%) rename {docs => fegen/docs}/static/css/style.css (100%) rename {docs => fegen/docs}/static/xml/label_12.xml (100%) rename {docs => fegen/docs}/static/xml/label_18.xml (100%) rename {docs => fegen/docs}/static/xml/label_18_flag.xml (100%) rename {docs => fegen/docs}/static/xml/label_18_ribbon.xml (100%) rename {docs => fegen/docs}/static/xml/prop.xml (100%) rename main.py => fegen/main.py (67%) rename {template => fegen/template}/_base_template.html (99%) rename {template => fegen/template}/_main_layout.html (87%) rename {template => fegen/template}/static/css/style.css (100%) rename {template => fegen/template}/static/xml/label_12.xml (100%) rename {template => fegen/template}/static/xml/label_18.xml (100%) rename {template => fegen/template}/static/xml/label_18_flag.xml (100%) rename {template => fegen/template}/static/xml/label_18_ribbon.xml (100%) rename {template => fegen/template}/static/xml/prop.xml (100%) delete mode 100644 requirements.txt diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..01f441d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.venv +.git +__pycache__ +*.pyc +.ruff_cache +.mypy_cache diff --git a/Dockerfile b/Dockerfile index 327c715..b99eba5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,20 @@ -FROM python:3.11 +# Build stage +FROM python:3.11 AS builder -RUN mkdir /app -COPY / /app - -COPY pyproject.toml poetry.lock /app/ +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ WORKDIR /app +COPY pyproject.toml uv.lock ./ +RUN uv sync --frozen --no-install-project +COPY . . +RUN uv sync -ENV PYTHONPATH=${PYTHONPATH}:${PWD} -RUN pip install poetry +# Runtime stage +FROM python:3.11-slim -RUN poetry config virtualenvs.create false -RUN poetry install --only main +WORKDIR /app +COPY --from=builder /app/ /app/ +ENV PATH="/app/.venv/bin:$PATH" + +CMD ["fastapi", "dev", "--host", "0.0.0.0", "--port", "31337", "labeler/adapter/fastapi_srv.py" ] diff --git a/README.md b/README.md index 2e5ba86..cccde8d 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,15 @@ Skrypt, który generuje podsumowanie [Bazy Wiedzy zasobów Hackerspace Trójmiasto](https://kb.hs3.pl/docs) w formie statycznej strony internetowej. +## Uruchomienie + +```bash +uv venv --python 3.11 +source .venv.bin/activate +uv sync +fastapi dev --port 31337 labeler/adapter/fastapi_srv.py +``` + ## Sposób działania 1. Baza Wiedzy znajduje się na Discourse Hackerspace Trójmiasto i jest dostępna publicznie. Projekt wykorzystuje Discourse REST API do pobrania listy zasobów. diff --git a/fegen/__init__.py b/fegen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/discourse.py b/fegen/discourse.py similarity index 99% rename from discourse.py rename to fegen/discourse.py index dc31edc..cf42b56 100644 --- a/discourse.py +++ b/fegen/discourse.py @@ -16,6 +16,7 @@ PLACES = [ "audiolab", "server-room" ] + class DiscourseDatabase(): def __init__(self): data = self.get_category_data() diff --git a/docs/index.html b/fegen/docs/index.html similarity index 100% rename from docs/index.html rename to fegen/docs/index.html diff --git a/docs/static/css/style.css b/fegen/docs/static/css/style.css similarity index 100% rename from docs/static/css/style.css rename to fegen/docs/static/css/style.css diff --git a/docs/static/xml/label_12.xml b/fegen/docs/static/xml/label_12.xml similarity index 100% rename from docs/static/xml/label_12.xml rename to fegen/docs/static/xml/label_12.xml diff --git a/docs/static/xml/label_18.xml b/fegen/docs/static/xml/label_18.xml similarity index 100% rename from docs/static/xml/label_18.xml rename to fegen/docs/static/xml/label_18.xml diff --git a/docs/static/xml/label_18_flag.xml b/fegen/docs/static/xml/label_18_flag.xml similarity index 100% rename from docs/static/xml/label_18_flag.xml rename to fegen/docs/static/xml/label_18_flag.xml diff --git a/docs/static/xml/label_18_ribbon.xml b/fegen/docs/static/xml/label_18_ribbon.xml similarity index 100% rename from docs/static/xml/label_18_ribbon.xml rename to fegen/docs/static/xml/label_18_ribbon.xml diff --git a/docs/static/xml/prop.xml b/fegen/docs/static/xml/prop.xml similarity index 100% rename from docs/static/xml/prop.xml rename to fegen/docs/static/xml/prop.xml diff --git a/main.py b/fegen/main.py similarity index 67% rename from main.py rename to fegen/main.py index 1415ca2..eb8dd58 100644 --- a/main.py +++ b/fegen/main.py @@ -1,7 +1,6 @@ import os, re, shutil from jinja2 import Environment, FileSystemLoader import pandas as pd -from discourse import DiscourseDatabase def add_download_button(row): @@ -9,23 +8,22 @@ def add_download_button(row): download_button = ( f'' ) - return row + [download_button] + print_button = f'' + return row + [download_button, print_button] def generate_dashboard(): """Generate dashboard from zasoby.csv file""" print("Generating HTML dashboard") - website_folder = "docs" + website_folder = "fegen/docs" data = pd.read_csv("zasoby.csv") - env = Environment(loader=FileSystemLoader("template")) + env = Environment(loader=FileSystemLoader("fegen/template")) print("Removing old website files") - shutil.rmtree(f"./{website_folder}") - os.mkdir(f"./{website_folder}") print("Creating a new website") - shutil.copytree("template/static", f"{website_folder}/static") + shutil.copytree("fegen/template/static", f"{website_folder}/static", dirs_exist_ok=True) template = env.get_template("_main_layout.html") with open(f"{website_folder}/index.html", "w+", encoding="utf-8") as file: - header_row = data.columns.values.tolist() + ["label"] + header_row = data.columns.values.tolist() + ["label", "print"] rows = map( add_download_button, data.values.tolist(), @@ -39,7 +37,8 @@ def generate_dashboard(): if __name__ == "__main__": + from discourse import DiscourseDatabase + DiscourseDatabase() generate_dashboard() print("Done!") - diff --git a/template/_base_template.html b/fegen/template/_base_template.html similarity index 99% rename from template/_base_template.html rename to fegen/template/_base_template.html index ffdbc2a..a690ec7 100644 --- a/template/_base_template.html +++ b/fegen/template/_base_template.html @@ -130,7 +130,7 @@ link.download = "hs3_db_label_" + template + "_" + item_id + ".lbx"; link.click(); } - + document.addEventListener("DOMContentLoaded", async () => { await initTemplates(); diff --git a/template/_main_layout.html b/fegen/template/_main_layout.html similarity index 87% rename from template/_main_layout.html rename to fegen/template/_main_layout.html index b2be738..579f45d 100644 --- a/template/_main_layout.html +++ b/fegen/template/_main_layout.html @@ -4,6 +4,7 @@
{% block sidenav %}{% endblock sidenav %}

Baza Zasobów Hackerspace Trójmiasto

+ diff --git a/template/static/css/style.css b/fegen/template/static/css/style.css similarity index 100% rename from template/static/css/style.css rename to fegen/template/static/css/style.css diff --git a/template/static/xml/label_12.xml b/fegen/template/static/xml/label_12.xml similarity index 100% rename from template/static/xml/label_12.xml rename to fegen/template/static/xml/label_12.xml diff --git a/template/static/xml/label_18.xml b/fegen/template/static/xml/label_18.xml similarity index 100% rename from template/static/xml/label_18.xml rename to fegen/template/static/xml/label_18.xml diff --git a/template/static/xml/label_18_flag.xml b/fegen/template/static/xml/label_18_flag.xml similarity index 100% rename from template/static/xml/label_18_flag.xml rename to fegen/template/static/xml/label_18_flag.xml diff --git a/template/static/xml/label_18_ribbon.xml b/fegen/template/static/xml/label_18_ribbon.xml similarity index 100% rename from template/static/xml/label_18_ribbon.xml rename to fegen/template/static/xml/label_18_ribbon.xml diff --git a/template/static/xml/prop.xml b/fegen/template/static/xml/prop.xml similarity index 100% rename from template/static/xml/prop.xml rename to fegen/template/static/xml/prop.xml diff --git a/labeler/adapter/fastapi_srv.py b/labeler/adapter/fastapi_srv.py index 2ba98a8..6b0cf75 100644 --- a/labeler/adapter/fastapi_srv.py +++ b/labeler/adapter/fastapi_srv.py @@ -5,9 +5,15 @@ from labeler.infra.e550w_printer.printer import E550W from labeler.infra.renderer import PILRenderer from fastapi import FastAPI +from fastapi.responses import HTMLResponse, RedirectResponse +from fastapi.staticfiles import StaticFiles + +from fegen import discourse, main app = FastAPI() +app.mount("/static", StaticFiles(directory="fegen/docs/static"), name="static") + class LabelingBot: def __init__(self, app: Application): @@ -65,6 +71,11 @@ class LabelingBot: # await update.message.reply_text("Cancelled.") # return ConversationHandler.END +@app.get("/", response_class=HTMLResponse) +async def root(): + with open("fegen/docs/index.html", "r") as f: + index = f.read() + return index @app.get("/print/{item_id}") def print_item(item_id: int, q: str | None = None): @@ -78,3 +89,10 @@ def print_item(item_id: int, q: str | None = None): with open("label.png", "wb") as preview: preview.write(label.bytes) bot.print_qrcode(item_id, 25) + return RedirectResponse(url="/", status_code=302) + +@app.get("/refresh") +def refresh(): + discourse.DiscourseDatabase() + main.generate_dashboard() + return RedirectResponse(url="/", status_code=302) diff --git a/pyproject.toml b/pyproject.toml index c442e92..0666ff1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "python-scratchpad" version = "0.1.0" description = "" # authors = ["Hubert Bryłkowski "] -readme = "README.md" +readme = "readme.md" requires-python = ">=3.11" dependencies = [ "brother-ql @ git+https://github.com/hbrylkowski/brother_ql@4225d13d209e8e4a2c17e87a75f42809e0da8fda", @@ -16,6 +16,10 @@ dependencies = [ "pyasn1==0.4.8,<0.5", "python-telegram-bot>=20.3,<21", "fastapi[standard]>=0.114.0", + "requests==2.32.5", + "Jinja2==3.1.6", + "pandas==2.3.3", + "python-dotenv==1.2.1", ] [tool.poetry.group.dev.dependencies] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 6c001de..0000000 --- a/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -requests==2.32.5 -Jinja2==3.1.6 -pandas==2.3.3 -python-dotenv==1.2.1 \ No newline at end of file diff --git a/uv.lock b/uv.lock index 147a418..727696b 100644 --- a/uv.lock +++ b/uv.lock @@ -4,7 +4,8 @@ requires-python = ">=3.11" resolution-markers = [ "python_full_version >= '3.14'", "python_full_version == '3.13.*'", - "python_full_version < '3.13'", + "python_full_version == '3.12.*'", + "python_full_version < '3.12'", ] [[package]] @@ -418,12 +419,145 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] +[[package]] +name = "numpy" +version = "2.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/10/8b/c265f4823726ab832de836cdd184d0986dcf94480f81e8739692a7ac7af2/numpy-2.4.3.tar.gz", hash = "sha256:483a201202b73495f00dbc83796c6ae63137a9bdade074f7648b3e32613412dd", size = 20727743, upload-time = "2026-03-09T07:58:53.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/51/5093a2df15c4dc19da3f79d1021e891f5dcf1d9d1db6ba38891d5590f3fe/numpy-2.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:33b3bf58ee84b172c067f56aeadc7ee9ab6de69c5e800ab5b10295d54c581adb", size = 16957183, upload-time = "2026-03-09T07:55:57.774Z" }, + { url = "https://files.pythonhosted.org/packages/b5/7c/c061f3de0630941073d2598dc271ac2f6cbcf5c83c74a5870fea07488333/numpy-2.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8ba7b51e71c05aa1f9bc3641463cd82308eab40ce0d5c7e1fd4038cbf9938147", size = 14968734, upload-time = "2026-03-09T07:56:00.494Z" }, + { url = "https://files.pythonhosted.org/packages/ef/27/d26c85cbcd86b26e4f125b0668e7a7c0542d19dd7d23ee12e87b550e95b5/numpy-2.4.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a1988292870c7cb9d0ebb4cc96b4d447513a9644801de54606dc7aabf2b7d920", size = 5475288, upload-time = "2026-03-09T07:56:02.857Z" }, + { url = "https://files.pythonhosted.org/packages/2b/09/3c4abbc1dcd8010bf1a611d174c7aa689fc505585ec806111b4406f6f1b1/numpy-2.4.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:23b46bb6d8ecb68b58c09944483c135ae5f0e9b8d8858ece5e4ead783771d2a9", size = 6805253, upload-time = "2026-03-09T07:56:04.53Z" }, + { url = "https://files.pythonhosted.org/packages/21/bc/e7aa3f6817e40c3f517d407742337cbb8e6fc4b83ce0b55ab780c829243b/numpy-2.4.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a016db5c5dba78fa8fe9f5d80d6708f9c42ab087a739803c0ac83a43d686a470", size = 15969479, upload-time = "2026-03-09T07:56:06.638Z" }, + { url = "https://files.pythonhosted.org/packages/78/51/9f5d7a41f0b51649ddf2f2320595e15e122a40610b233d51928dd6c92353/numpy-2.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:715de7f82e192e8cae5a507a347d97ad17598f8e026152ca97233e3666daaa71", size = 16901035, upload-time = "2026-03-09T07:56:09.405Z" }, + { url = "https://files.pythonhosted.org/packages/64/6e/b221dd847d7181bc5ee4857bfb026182ef69499f9305eb1371cbb1aea626/numpy-2.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2ddb7919366ee468342b91dea2352824c25b55814a987847b6c52003a7c97f15", size = 17325657, upload-time = "2026-03-09T07:56:12.067Z" }, + { url = "https://files.pythonhosted.org/packages/eb/b8/8f3fd2da596e1063964b758b5e3c970aed1949a05200d7e3d46a9d46d643/numpy-2.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a315e5234d88067f2d97e1f2ef670a7569df445d55400f1e33d117418d008d52", size = 18635512, upload-time = "2026-03-09T07:56:14.629Z" }, + { url = "https://files.pythonhosted.org/packages/5c/24/2993b775c37e39d2f8ab4125b44337ab0b2ba106c100980b7c274a22bee7/numpy-2.4.3-cp311-cp311-win32.whl", hash = "sha256:2b3f8d2c4589b1a2028d2a770b0fc4d1f332fb5e01521f4de3199a896d158ddd", size = 6238100, upload-time = "2026-03-09T07:56:17.243Z" }, + { url = "https://files.pythonhosted.org/packages/76/1d/edccf27adedb754db7c4511d5eac8b83f004ae948fe2d3509e8b78097d4c/numpy-2.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:77e76d932c49a75617c6d13464e41203cd410956614d0a0e999b25e9e8d27eec", size = 12609816, upload-time = "2026-03-09T07:56:19.089Z" }, + { url = "https://files.pythonhosted.org/packages/92/82/190b99153480076c8dce85f4cfe7d53ea84444145ffa54cb58dcd460d66b/numpy-2.4.3-cp311-cp311-win_arm64.whl", hash = "sha256:eb610595dd91560905c132c709412b512135a60f1851ccbd2c959e136431ff67", size = 10485757, upload-time = "2026-03-09T07:56:21.753Z" }, + { url = "https://files.pythonhosted.org/packages/a9/ed/6388632536f9788cea23a3a1b629f25b43eaacd7d7377e5d6bc7b9deb69b/numpy-2.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:61b0cbabbb6126c8df63b9a3a0c4b1f44ebca5e12ff6997b80fcf267fb3150ef", size = 16669628, upload-time = "2026-03-09T07:56:24.252Z" }, + { url = "https://files.pythonhosted.org/packages/74/1b/ee2abfc68e1ce728b2958b6ba831d65c62e1b13ce3017c13943f8f9b5b2e/numpy-2.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7395e69ff32526710748f92cd8c9849b361830968ea3e24a676f272653e8983e", size = 14696872, upload-time = "2026-03-09T07:56:26.991Z" }, + { url = "https://files.pythonhosted.org/packages/ba/d1/780400e915ff5638166f11ca9dc2c5815189f3d7cf6f8759a1685e586413/numpy-2.4.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:abdce0f71dcb4a00e4e77f3faf05e4616ceccfe72ccaa07f47ee79cda3b7b0f4", size = 5203489, upload-time = "2026-03-09T07:56:29.414Z" }, + { url = "https://files.pythonhosted.org/packages/0b/bb/baffa907e9da4cc34a6e556d6d90e032f6d7a75ea47968ea92b4858826c4/numpy-2.4.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:48da3a4ee1336454b07497ff7ec83903efa5505792c4e6d9bf83d99dc07a1e18", size = 6550814, upload-time = "2026-03-09T07:56:32.225Z" }, + { url = "https://files.pythonhosted.org/packages/7b/12/8c9f0c6c95f76aeb20fc4a699c33e9f827fa0d0f857747c73bb7b17af945/numpy-2.4.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:32e3bef222ad6b052280311d1d60db8e259e4947052c3ae7dd6817451fc8a4c5", size = 15666601, upload-time = "2026-03-09T07:56:34.461Z" }, + { url = "https://files.pythonhosted.org/packages/bd/79/cc665495e4d57d0aa6fbcc0aa57aa82671dfc78fbf95fe733ed86d98f52a/numpy-2.4.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7dd01a46700b1967487141a66ac1a3cf0dd8ebf1f08db37d46389401512ca97", size = 16621358, upload-time = "2026-03-09T07:56:36.852Z" }, + { url = "https://files.pythonhosted.org/packages/a8/40/b4ecb7224af1065c3539f5ecfff879d090de09608ad1008f02c05c770cb3/numpy-2.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:76f0f283506c28b12bba319c0fab98217e9f9b54e6160e9c79e9f7348ba32e9c", size = 17016135, upload-time = "2026-03-09T07:56:39.337Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b1/6a88e888052eed951afed7a142dcdf3b149a030ca59b4c71eef085858e43/numpy-2.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:737f630a337364665aba3b5a77e56a68cc42d350edd010c345d65a3efa3addcc", size = 18345816, upload-time = "2026-03-09T07:56:42.31Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8f/103a60c5f8c3d7fc678c19cd7b2476110da689ccb80bc18050efbaeae183/numpy-2.4.3-cp312-cp312-win32.whl", hash = "sha256:26952e18d82a1dbbc2f008d402021baa8d6fc8e84347a2072a25e08b46d698b9", size = 5960132, upload-time = "2026-03-09T07:56:44.851Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7c/f5ee1bf6ed888494978046a809df2882aad35d414b622893322df7286879/numpy-2.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:65f3c2455188f09678355f5cae1f959a06b778bc66d535da07bf2ef20cd319d5", size = 12316144, upload-time = "2026-03-09T07:56:47.057Z" }, + { url = "https://files.pythonhosted.org/packages/71/46/8d1cb3f7a00f2fb6394140e7e6623696e54c6318a9d9691bb4904672cf42/numpy-2.4.3-cp312-cp312-win_arm64.whl", hash = "sha256:2abad5c7fef172b3377502bde47892439bae394a71bc329f31df0fd829b41a9e", size = 10220364, upload-time = "2026-03-09T07:56:49.849Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d0/1fe47a98ce0df229238b77611340aff92d52691bcbc10583303181abf7fc/numpy-2.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b346845443716c8e542d54112966383b448f4a3ba5c66409771b8c0889485dd3", size = 16665297, upload-time = "2026-03-09T07:56:52.296Z" }, + { url = "https://files.pythonhosted.org/packages/27/d9/4e7c3f0e68dfa91f21c6fb6cf839bc829ec920688b1ce7ec722b1a6202fb/numpy-2.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2629289168f4897a3c4e23dc98d6f1731f0fc0fe52fb9db19f974041e4cc12b9", size = 14691853, upload-time = "2026-03-09T07:56:54.992Z" }, + { url = "https://files.pythonhosted.org/packages/3a/66/bd096b13a87549683812b53ab211e6d413497f84e794fb3c39191948da97/numpy-2.4.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:bb2e3cf95854233799013779216c57e153c1ee67a0bf92138acca0e429aefaee", size = 5198435, upload-time = "2026-03-09T07:56:57.184Z" }, + { url = "https://files.pythonhosted.org/packages/a2/2f/687722910b5a5601de2135c891108f51dfc873d8e43c8ed9f4ebb440b4a2/numpy-2.4.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:7f3408ff897f8ab07a07fbe2823d7aee6ff644c097cc1f90382511fe982f647f", size = 6546347, upload-time = "2026-03-09T07:56:59.531Z" }, + { url = "https://files.pythonhosted.org/packages/bf/ec/7971c4e98d86c564750393fab8d7d83d0a9432a9d78bb8a163a6dc59967a/numpy-2.4.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:decb0eb8a53c3b009b0962378065589685d66b23467ef5dac16cbe818afde27f", size = 15664626, upload-time = "2026-03-09T07:57:01.385Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/7daecbea84ec935b7fc732e18f532073064a3816f0932a40a17f3349185f/numpy-2.4.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5f51900414fc9204a0e0da158ba2ac52b75656e7dce7e77fb9f84bfa343b4cc", size = 16608916, upload-time = "2026-03-09T07:57:04.008Z" }, + { url = "https://files.pythonhosted.org/packages/df/58/2a2b4a817ffd7472dca4421d9f0776898b364154e30c95f42195041dc03b/numpy-2.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6bd06731541f89cdc01b261ba2c9e037f1543df7472517836b78dfb15bd6e476", size = 17015824, upload-time = "2026-03-09T07:57:06.347Z" }, + { url = "https://files.pythonhosted.org/packages/4a/ca/627a828d44e78a418c55f82dd4caea8ea4a8ef24e5144d9e71016e52fb40/numpy-2.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:22654fe6be0e5206f553a9250762c653d3698e46686eee53b399ab90da59bd92", size = 18334581, upload-time = "2026-03-09T07:57:09.114Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c0/76f93962fc79955fcba30a429b62304332345f22d4daec1cb33653425643/numpy-2.4.3-cp313-cp313-win32.whl", hash = "sha256:d71e379452a2f670ccb689ec801b1218cd3983e253105d6e83780967e899d687", size = 5958618, upload-time = "2026-03-09T07:57:11.432Z" }, + { url = "https://files.pythonhosted.org/packages/b1/3c/88af0040119209b9b5cb59485fa48b76f372c73068dbf9254784b975ac53/numpy-2.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:0a60e17a14d640f49146cb38e3f105f571318db7826d9b6fef7e4dce758faecd", size = 12312824, upload-time = "2026-03-09T07:57:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/58/ce/3d07743aced3d173f877c3ef6a454c2174ba42b584ab0b7e6d99374f51ed/numpy-2.4.3-cp313-cp313-win_arm64.whl", hash = "sha256:c9619741e9da2059cd9c3f206110b97583c7152c1dc9f8aafd4beb450ac1c89d", size = 10221218, upload-time = "2026-03-09T07:57:16.183Z" }, + { url = "https://files.pythonhosted.org/packages/62/09/d96b02a91d09e9d97862f4fc8bfebf5400f567d8eb1fe4b0cc4795679c15/numpy-2.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7aa4e54f6469300ebca1d9eb80acd5253cdfa36f2c03d79a35883687da430875", size = 14819570, upload-time = "2026-03-09T07:57:18.564Z" }, + { url = "https://files.pythonhosted.org/packages/b5/ca/0b1aba3905fdfa3373d523b2b15b19029f4f3031c87f4066bd9d20ef6c6b/numpy-2.4.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d1b90d840b25874cf5cd20c219af10bac3667db3876d9a495609273ebe679070", size = 5326113, upload-time = "2026-03-09T07:57:21.052Z" }, + { url = "https://files.pythonhosted.org/packages/c0/63/406e0fd32fcaeb94180fd6a4c41e55736d676c54346b7efbce548b94a914/numpy-2.4.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a749547700de0a20a6718293396ec237bb38218049cfce788e08fcb716e8cf73", size = 6646370, upload-time = "2026-03-09T07:57:22.804Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d0/10f7dc157d4b37af92720a196be6f54f889e90dcd30dce9dc657ed92c257/numpy-2.4.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94f3c4a151a2e529adf49c1d54f0f57ff8f9b233ee4d44af623a81553ab86368", size = 15723499, upload-time = "2026-03-09T07:57:24.693Z" }, + { url = "https://files.pythonhosted.org/packages/66/f1/d1c2bf1161396629701bc284d958dc1efa3a5a542aab83cf11ee6eb4cba5/numpy-2.4.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22c31dc07025123aedf7f2db9e91783df13f1776dc52c6b22c620870dc0fab22", size = 16657164, upload-time = "2026-03-09T07:57:27.676Z" }, + { url = "https://files.pythonhosted.org/packages/1a/be/cca19230b740af199ac47331a21c71e7a3d0ba59661350483c1600d28c37/numpy-2.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:148d59127ac95979d6f07e4d460f934ebdd6eed641db9c0db6c73026f2b2101a", size = 17081544, upload-time = "2026-03-09T07:57:30.664Z" }, + { url = "https://files.pythonhosted.org/packages/b9/c5/9602b0cbb703a0936fb40f8a95407e8171935b15846de2f0776e08af04c7/numpy-2.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a97cbf7e905c435865c2d939af3d93f99d18eaaa3cabe4256f4304fb51604349", size = 18380290, upload-time = "2026-03-09T07:57:33.763Z" }, + { url = "https://files.pythonhosted.org/packages/ed/81/9f24708953cd30be9ee36ec4778f4b112b45165812f2ada4cc5ea1c1f254/numpy-2.4.3-cp313-cp313t-win32.whl", hash = "sha256:be3b8487d725a77acccc9924f65fd8bce9af7fac8c9820df1049424a2115af6c", size = 6082814, upload-time = "2026-03-09T07:57:36.491Z" }, + { url = "https://files.pythonhosted.org/packages/e2/9e/52f6eaa13e1a799f0ab79066c17f7016a4a8ae0c1aefa58c82b4dab690b4/numpy-2.4.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1ec84fd7c8e652b0f4aaaf2e6e9cc8eaa9b1b80a537e06b2e3a2fb176eedcb26", size = 12452673, upload-time = "2026-03-09T07:57:38.281Z" }, + { url = "https://files.pythonhosted.org/packages/c4/04/b8cece6ead0b30c9fbd99bb835ad7ea0112ac5f39f069788c5558e3b1ab2/numpy-2.4.3-cp313-cp313t-win_arm64.whl", hash = "sha256:120df8c0a81ebbf5b9020c91439fccd85f5e018a927a39f624845be194a2be02", size = 10290907, upload-time = "2026-03-09T07:57:40.747Z" }, + { url = "https://files.pythonhosted.org/packages/70/ae/3936f79adebf8caf81bd7a599b90a561334a658be4dcc7b6329ebf4ee8de/numpy-2.4.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5884ce5c7acfae1e4e1b6fde43797d10aa506074d25b531b4f54bde33c0c31d4", size = 16664563, upload-time = "2026-03-09T07:57:43.817Z" }, + { url = "https://files.pythonhosted.org/packages/9b/62/760f2b55866b496bb1fa7da2a6db076bef908110e568b02fcfc1422e2a3a/numpy-2.4.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:297837823f5bc572c5f9379b0c9f3a3365f08492cbdc33bcc3af174372ebb168", size = 14702161, upload-time = "2026-03-09T07:57:46.169Z" }, + { url = "https://files.pythonhosted.org/packages/32/af/a7a39464e2c0a21526fb4fb76e346fb172ebc92f6d1c7a07c2c139cc17b1/numpy-2.4.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:a111698b4a3f8dcbe54c64a7708f049355abd603e619013c346553c1fd4ca90b", size = 5208738, upload-time = "2026-03-09T07:57:48.506Z" }, + { url = "https://files.pythonhosted.org/packages/29/8c/2a0cf86a59558fa078d83805589c2de490f29ed4fb336c14313a161d358a/numpy-2.4.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:4bd4741a6a676770e0e97fe9ab2e51de01183df3dcbcec591d26d331a40de950", size = 6543618, upload-time = "2026-03-09T07:57:50.591Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b8/612ce010c0728b1c363fa4ea3aa4c22fe1c5da1de008486f8c2f5cb92fae/numpy-2.4.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:54f29b877279d51e210e0c80709ee14ccbbad647810e8f3d375561c45ef613dd", size = 15680676, upload-time = "2026-03-09T07:57:52.34Z" }, + { url = "https://files.pythonhosted.org/packages/a9/7e/4f120ecc54ba26ddf3dc348eeb9eb063f421de65c05fc961941798feea18/numpy-2.4.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:679f2a834bae9020f81534671c56fd0cc76dd7e5182f57131478e23d0dc59e24", size = 16613492, upload-time = "2026-03-09T07:57:54.91Z" }, + { url = "https://files.pythonhosted.org/packages/2c/86/1b6020db73be330c4b45d5c6ee4295d59cfeef0e3ea323959d053e5a6909/numpy-2.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d84f0f881cb2225c2dfd7f78a10a5645d487a496c6668d6cc39f0f114164f3d0", size = 17031789, upload-time = "2026-03-09T07:57:57.641Z" }, + { url = "https://files.pythonhosted.org/packages/07/3a/3b90463bf41ebc21d1b7e06079f03070334374208c0f9a1f05e4ae8455e7/numpy-2.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d213c7e6e8d211888cc359bab7199670a00f5b82c0978b9d1c75baf1eddbeac0", size = 18339941, upload-time = "2026-03-09T07:58:00.577Z" }, + { url = "https://files.pythonhosted.org/packages/a8/74/6d736c4cd962259fd8bae9be27363eb4883a2f9069763747347544c2a487/numpy-2.4.3-cp314-cp314-win32.whl", hash = "sha256:52077feedeff7c76ed7c9f1a0428558e50825347b7545bbb8523da2cd55c547a", size = 6007503, upload-time = "2026-03-09T07:58:03.331Z" }, + { url = "https://files.pythonhosted.org/packages/48/39/c56ef87af669364356bb011922ef0734fc49dad51964568634c72a009488/numpy-2.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:0448e7f9caefb34b4b7dd2b77f21e8906e5d6f0365ad525f9f4f530b13df2afc", size = 12444915, upload-time = "2026-03-09T07:58:06.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1f/ab8528e38d295fd349310807496fabb7cf9fe2e1f70b97bc20a483ea9d4a/numpy-2.4.3-cp314-cp314-win_arm64.whl", hash = "sha256:b44fd60341c4d9783039598efadd03617fa28d041fc37d22b62d08f2027fa0e7", size = 10494875, upload-time = "2026-03-09T07:58:08.734Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ef/b7c35e4d5ef141b836658ab21a66d1a573e15b335b1d111d31f26c8ef80f/numpy-2.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0a195f4216be9305a73c0e91c9b026a35f2161237cf1c6de9b681637772ea657", size = 14822225, upload-time = "2026-03-09T07:58:11.034Z" }, + { url = "https://files.pythonhosted.org/packages/cd/8d/7730fa9278cf6648639946cc816e7cc89f0d891602584697923375f801ed/numpy-2.4.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:cd32fbacb9fd1bf041bf8e89e4576b6f00b895f06d00914820ae06a616bdfef7", size = 5328769, upload-time = "2026-03-09T07:58:13.67Z" }, + { url = "https://files.pythonhosted.org/packages/47/01/d2a137317c958b074d338807c1b6a383406cdf8b8e53b075d804cc3d211d/numpy-2.4.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:2e03c05abaee1f672e9d67bc858f300b5ccba1c21397211e8d77d98350972093", size = 6649461, upload-time = "2026-03-09T07:58:15.912Z" }, + { url = "https://files.pythonhosted.org/packages/5c/34/812ce12bc0f00272a4b0ec0d713cd237cb390666eb6206323d1cc9cedbb2/numpy-2.4.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d1ce23cce91fcea443320a9d0ece9b9305d4368875bab09538f7a5b4131938a", size = 15725809, upload-time = "2026-03-09T07:58:17.787Z" }, + { url = "https://files.pythonhosted.org/packages/25/c0/2aed473a4823e905e765fee3dc2cbf504bd3e68ccb1150fbdabd5c39f527/numpy-2.4.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c59020932feb24ed49ffd03704fbab89f22aa9c0d4b180ff45542fe8918f5611", size = 16655242, upload-time = "2026-03-09T07:58:20.476Z" }, + { url = "https://files.pythonhosted.org/packages/f2/c8/7e052b2fc87aa0e86de23f20e2c42bd261c624748aa8efd2c78f7bb8d8c6/numpy-2.4.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9684823a78a6cd6ad7511fc5e25b07947d1d5b5e2812c93fe99d7d4195130720", size = 17080660, upload-time = "2026-03-09T07:58:23.067Z" }, + { url = "https://files.pythonhosted.org/packages/f3/3d/0876746044db2adcb11549f214d104f2e1be00f07a67edbb4e2812094847/numpy-2.4.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0200b25c687033316fb39f0ff4e3e690e8957a2c3c8d22499891ec58c37a3eb5", size = 18380384, upload-time = "2026-03-09T07:58:25.839Z" }, + { url = "https://files.pythonhosted.org/packages/07/12/8160bea39da3335737b10308df4f484235fd297f556745f13092aa039d3b/numpy-2.4.3-cp314-cp314t-win32.whl", hash = "sha256:5e10da9e93247e554bb1d22f8edc51847ddd7dde52d85ce31024c1b4312bfba0", size = 6154547, upload-time = "2026-03-09T07:58:28.289Z" }, + { url = "https://files.pythonhosted.org/packages/42/f3/76534f61f80d74cc9cdf2e570d3d4eeb92c2280a27c39b0aaf471eda7b48/numpy-2.4.3-cp314-cp314t-win_amd64.whl", hash = "sha256:45f003dbdffb997a03da2d1d0cb41fbd24a87507fb41605c0420a3db5bd4667b", size = 12633645, upload-time = "2026-03-09T07:58:30.384Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b6/7c0d4334c15983cec7f92a69e8ce9b1e6f31857e5ee3a413ac424e6bd63d/numpy-2.4.3-cp314-cp314t-win_arm64.whl", hash = "sha256:4d382735cecd7bcf090172489a525cd7d4087bc331f7df9f60ddc9a296cf208e", size = 10565454, upload-time = "2026-03-09T07:58:33.031Z" }, + { url = "https://files.pythonhosted.org/packages/64/e4/4dab9fb43c83719c29241c535d9e07be73bea4bc0c6686c5816d8e1b6689/numpy-2.4.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c6b124bfcafb9e8d3ed09130dbee44848c20b3e758b6bbf006e641778927c028", size = 16834892, upload-time = "2026-03-09T07:58:35.334Z" }, + { url = "https://files.pythonhosted.org/packages/c9/29/f8b6d4af90fed3dfda84ebc0df06c9833d38880c79ce954e5b661758aa31/numpy-2.4.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:76dbb9d4e43c16cf9aa711fcd8de1e2eeb27539dcefb60a1d5e9f12fae1d1ed8", size = 14893070, upload-time = "2026-03-09T07:58:37.7Z" }, + { url = "https://files.pythonhosted.org/packages/9a/04/a19b3c91dbec0a49269407f15d5753673a09832daed40c45e8150e6fa558/numpy-2.4.3-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:29363fbfa6f8ee855d7569c96ce524845e3d726d6c19b29eceec7dd555dab152", size = 5399609, upload-time = "2026-03-09T07:58:39.853Z" }, + { url = "https://files.pythonhosted.org/packages/79/34/4d73603f5420eab89ea8a67097b31364bf7c30f811d4dd84b1659c7476d9/numpy-2.4.3-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:bc71942c789ef415a37f0d4eab90341425a00d538cd0642445d30b41023d3395", size = 6714355, upload-time = "2026-03-09T07:58:42.365Z" }, + { url = "https://files.pythonhosted.org/packages/58/ad/1100d7229bb248394939a12a8074d485b655e8ed44207d328fdd7fcebc7b/numpy-2.4.3-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e58765ad74dcebd3ef0208a5078fba32dc8ec3578fe84a604432950cd043d79", size = 15800434, upload-time = "2026-03-09T07:58:44.837Z" }, + { url = "https://files.pythonhosted.org/packages/0c/fd/16d710c085d28ba4feaf29ac60c936c9d662e390344f94a6beaa2ac9899b/numpy-2.4.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e236dbda4e1d319d681afcbb136c0c4a8e0f1a5c58ceec2adebb547357fe857", size = 16729409, upload-time = "2026-03-09T07:58:47.972Z" }, + { url = "https://files.pythonhosted.org/packages/57/a7/b35835e278c18b85206834b3aa3abe68e77a98769c59233d1f6300284781/numpy-2.4.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:4b42639cdde6d24e732ff823a3fa5b701d8acad89c4142bc1d0bd6dc85200ba5", size = 12504685, upload-time = "2026-03-09T07:58:50.525Z" }, +] + [[package]] name = "packbits" version = "0.6" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/1b/23/78a967c9b9961258da2bf0d0a63bf12293ccddf96ec77361ee7b44f543f1/packbits-0.6.tar.gz", hash = "sha256:bc6b370bb34e04ac8cfa835e06c0484380affc6d593adb8009dd6c0f7bfff034", size = 2167, upload-time = "2013-04-06T08:22:59.65Z" } +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/fa/7ac648108144a095b4fb6aa3de1954689f7af60a14cf25583f4960ecb878/pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523", size = 11578790, upload-time = "2025-09-29T23:18:30.065Z" }, + { url = "https://files.pythonhosted.org/packages/9b/35/74442388c6cf008882d4d4bdfc4109be87e9b8b7ccd097ad1e7f006e2e95/pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45", size = 10833831, upload-time = "2025-09-29T23:38:56.071Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e4/de154cbfeee13383ad58d23017da99390b91d73f8c11856f2095e813201b/pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66", size = 12199267, upload-time = "2025-09-29T23:18:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b", size = 12789281, upload-time = "2025-09-29T23:18:56.834Z" }, + { url = "https://files.pythonhosted.org/packages/f2/00/a5ac8c7a0e67fd1a6059e40aa08fa1c52cc00709077d2300e210c3ce0322/pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791", size = 13240453, upload-time = "2025-09-29T23:19:09.247Z" }, + { url = "https://files.pythonhosted.org/packages/27/4d/5c23a5bc7bd209231618dd9e606ce076272c9bc4f12023a70e03a86b4067/pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151", size = 13890361, upload-time = "2025-09-29T23:19:25.342Z" }, + { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702, upload-time = "2025-09-29T23:19:38.296Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload-time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload-time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload-time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload-time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload-time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload-time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload-time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload-time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload-time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload-time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload-time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload-time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload-time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload-time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload-time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload-time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload-time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload-time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload-time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload-time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload-time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload-time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload-time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload-time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload-time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload-time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload-time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload-time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload-time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload-time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload-time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload-time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload-time = "2025-09-29T23:31:59.173Z" }, +] + [[package]] name = "pillow" version = "9.5.0" @@ -564,12 +698,24 @@ wheels = [ ] [[package]] -name = "python-dotenv" -version = "1.2.2" +name = "python-dateutil" +version = "2.9.0.post0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, ] [[package]] @@ -589,11 +735,14 @@ dependencies = [ { name = "brother-ql" }, { name = "fastapi", extra = ["standard"] }, { name = "jinja2" }, + { name = "pandas" }, { name = "pillow" }, { name = "pyasn1" }, { name = "pysnmp" }, + { name = "python-dotenv" }, { name = "python-telegram-bot" }, { name = "qrcode", extra = ["pil"] }, + { name = "requests" }, { name = "setuptools" }, ] @@ -601,12 +750,16 @@ dependencies = [ requires-dist = [ { name = "brother-ql", git = "https://github.com/hbrylkowski/brother_ql?rev=4225d13d209e8e4a2c17e87a75f42809e0da8fda" }, { name = "fastapi", extras = ["standard"], specifier = ">=0.114.0" }, + { name = "jinja2", specifier = "==3.1.6" }, { name = "jinja2", specifier = ">=3.1.2,<4" }, + { name = "pandas", specifier = "==2.3.3" }, { name = "pillow", specifier = ">=9.5.0,<10" }, { name = "pyasn1", specifier = "==0.4.8,<0.5" }, { name = "pysnmp", specifier = ">=4.4.12,<5" }, + { name = "python-dotenv", specifier = "==1.2.1" }, { name = "python-telegram-bot", specifier = ">=20.3,<21" }, { name = "qrcode", extras = ["pil"] }, + { name = "requests", specifier = "==2.32.5" }, { name = "setuptools", specifier = "<81" }, ] @@ -622,6 +775,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6f/8e/4e4ed06986557fce0c41c3dfc60c5495b1095cf8a552bdc4c56e96aefdac/python_telegram_bot-20.8-py3-none-any.whl", hash = "sha256:a98ddf2f237d6584b03a2f8b20553e1b5e02c8d3a1ea8e17fd06cc955af78c14", size = 604866, upload-time = "2024-02-08T17:39:12.202Z" }, ] +[[package]] +name = "pytz" +version = "2026.1.post1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/56/db/b8721d71d945e6a8ac63c0fc900b2067181dbb50805958d4d4661cf7d277/pytz-2026.1.post1.tar.gz", hash = "sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1", size = 321088, upload-time = "2026-03-03T07:47:50.683Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl", hash = "sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a", size = 510489, upload-time = "2026-03-03T07:47:49.167Z" }, +] + [[package]] name = "pyusb" version = "1.3.1" @@ -763,6 +925,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, ] +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + [[package]] name = "sniffio" version = "1.3.1" @@ -808,6 +979,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] +[[package]] +name = "tzdata" +version = "2025.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, +] + [[package]] name = "urllib3" version = "2.6.3" From 1e5ecf5fb680d87349c50f3cb7b651b9b7361d73 Mon Sep 17 00:00:00 2001 From: Piotr Gaczkowski Date: Tue, 24 Mar 2026 15:39:18 +0100 Subject: [PATCH 2/2] feat: Add basic frontend --- .dockerignore | 6 + Dockerfile | 23 +- README.md | 9 + fegen/__init__.py | 0 discourse.py => fegen/discourse.py | 1 + {docs => fegen/docs}/index.html | 3057 +++++++++++------ {docs => fegen/docs}/static/css/style.css | 0 {docs => fegen/docs}/static/xml/label_12.xml | 0 {docs => fegen/docs}/static/xml/label_18.xml | 0 .../docs}/static/xml/label_18_flag.xml | 0 .../docs}/static/xml/label_18_ribbon.xml | 0 {docs => fegen/docs}/static/xml/prop.xml | 0 main.py => fegen/main.py | 17 +- .../template}/_base_template.html | 2 +- .../template}/_main_layout.html | 1 + .../template}/static/css/style.css | 0 .../template}/static/xml/label_12.xml | 0 .../template}/static/xml/label_18.xml | 0 .../template}/static/xml/label_18_flag.xml | 0 .../template}/static/xml/label_18_ribbon.xml | 0 .../template}/static/xml/prop.xml | 0 labeler/adapter/fastapi_srv.py | 18 + pyproject.toml | 6 +- requirements.txt | 4 - uv.lock | 190 +- zasoby.csv | 913 ++--- 26 files changed, 2762 insertions(+), 1485 deletions(-) create mode 100644 .dockerignore create mode 100644 fegen/__init__.py rename discourse.py => fegen/discourse.py (99%) rename {docs => fegen/docs}/index.html (74%) rename {docs => fegen/docs}/static/css/style.css (100%) rename {docs => fegen/docs}/static/xml/label_12.xml (100%) rename {docs => fegen/docs}/static/xml/label_18.xml (100%) rename {docs => fegen/docs}/static/xml/label_18_flag.xml (100%) rename {docs => fegen/docs}/static/xml/label_18_ribbon.xml (100%) rename {docs => fegen/docs}/static/xml/prop.xml (100%) rename main.py => fegen/main.py (67%) rename {template => fegen/template}/_base_template.html (99%) rename {template => fegen/template}/_main_layout.html (87%) rename {template => fegen/template}/static/css/style.css (100%) rename {template => fegen/template}/static/xml/label_12.xml (100%) rename {template => fegen/template}/static/xml/label_18.xml (100%) rename {template => fegen/template}/static/xml/label_18_flag.xml (100%) rename {template => fegen/template}/static/xml/label_18_ribbon.xml (100%) rename {template => fegen/template}/static/xml/prop.xml (100%) delete mode 100644 requirements.txt diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..01f441d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.venv +.git +__pycache__ +*.pyc +.ruff_cache +.mypy_cache diff --git a/Dockerfile b/Dockerfile index 327c715..b99eba5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,20 @@ -FROM python:3.11 +# Build stage +FROM python:3.11 AS builder -RUN mkdir /app -COPY / /app - -COPY pyproject.toml poetry.lock /app/ +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ WORKDIR /app +COPY pyproject.toml uv.lock ./ +RUN uv sync --frozen --no-install-project +COPY . . +RUN uv sync -ENV PYTHONPATH=${PYTHONPATH}:${PWD} -RUN pip install poetry +# Runtime stage +FROM python:3.11-slim -RUN poetry config virtualenvs.create false -RUN poetry install --only main +WORKDIR /app +COPY --from=builder /app/ /app/ +ENV PATH="/app/.venv/bin:$PATH" + +CMD ["fastapi", "dev", "--host", "0.0.0.0", "--port", "31337", "labeler/adapter/fastapi_srv.py" ] diff --git a/README.md b/README.md index 2e5ba86..cccde8d 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,15 @@ Skrypt, który generuje podsumowanie [Bazy Wiedzy zasobów Hackerspace Trójmiasto](https://kb.hs3.pl/docs) w formie statycznej strony internetowej. +## Uruchomienie + +```bash +uv venv --python 3.11 +source .venv.bin/activate +uv sync +fastapi dev --port 31337 labeler/adapter/fastapi_srv.py +``` + ## Sposób działania 1. Baza Wiedzy znajduje się na Discourse Hackerspace Trójmiasto i jest dostępna publicznie. Projekt wykorzystuje Discourse REST API do pobrania listy zasobów. diff --git a/fegen/__init__.py b/fegen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/discourse.py b/fegen/discourse.py similarity index 99% rename from discourse.py rename to fegen/discourse.py index dc31edc..cf42b56 100644 --- a/discourse.py +++ b/fegen/discourse.py @@ -16,6 +16,7 @@ PLACES = [ "audiolab", "server-room" ] + class DiscourseDatabase(): def __init__(self): data = self.get_category_data() diff --git a/docs/index.html b/fegen/docs/index.html similarity index 74% rename from docs/index.html rename to fegen/docs/index.html index 54ab1de..59ee207 100644 --- a/docs/index.html +++ b/fegen/docs/index.html @@ -30,6 +30,7 @@

Baza Zasobów Hackerspace Trójmiasto

+
@@ -44,6 +45,8 @@ + + @@ -60,6 +63,8 @@ + + @@ -74,887 +79,151 @@ - - - - - - - - - - - - - + - + - + - + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + - + - + - + - + - + + + - + - + - + - + - + + + - + - + - + - + - + + + + + + + + + + + + + + + + + + + @@ -970,47 +239,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1026,173 +255,55 @@ - - - - - - - - - - - - - + - + - + - + - + - + + + - + - + - + - + - + + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1208,6 +319,1208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1222,6 +1535,8 @@ + + @@ -1236,6 +1551,8 @@ + + @@ -1250,6 +1567,8 @@ + + @@ -1264,6 +1583,8 @@ + + @@ -1278,6 +1599,8 @@ + + @@ -1292,6 +1615,8 @@ + + @@ -1306,6 +1631,8 @@ + + @@ -1320,6 +1647,8 @@ + + @@ -1334,6 +1663,8 @@ + + @@ -1348,6 +1679,8 @@ + + @@ -1362,6 +1695,8 @@ + + @@ -1376,6 +1711,8 @@ + + @@ -1390,6 +1727,8 @@ + + @@ -1404,6 +1743,8 @@ + + @@ -1418,6 +1759,8 @@ + + @@ -1432,6 +1775,8 @@ + + @@ -1446,6 +1791,8 @@ + + @@ -1460,6 +1807,8 @@ + + @@ -1474,6 +1823,8 @@ + + @@ -1488,6 +1839,8 @@ + + @@ -1502,6 +1855,8 @@ + + @@ -1516,6 +1871,8 @@ + + @@ -1530,6 +1887,8 @@ + + @@ -1544,6 +1903,8 @@ + + @@ -1558,6 +1919,8 @@ + + @@ -1572,6 +1935,8 @@ + + @@ -1586,6 +1951,8 @@ + + @@ -1600,6 +1967,8 @@ + + @@ -1614,6 +1983,8 @@ + + @@ -1628,6 +1999,8 @@ + + @@ -1642,6 +2015,8 @@ + + @@ -1656,6 +2031,8 @@ + + @@ -1670,6 +2047,8 @@ + + @@ -1684,6 +2063,8 @@ + + @@ -1698,6 +2079,8 @@ + + @@ -1712,6 +2095,8 @@ + + @@ -1726,6 +2111,8 @@ + + @@ -1740,6 +2127,8 @@ + + @@ -1754,6 +2143,8 @@ + + @@ -1768,6 +2159,8 @@ + + @@ -1782,6 +2175,8 @@ + + @@ -1796,6 +2191,8 @@ + + @@ -1810,6 +2207,8 @@ + + @@ -1824,6 +2223,8 @@ + + @@ -1838,6 +2239,8 @@ + + @@ -1852,6 +2255,8 @@ + + @@ -1866,6 +2271,8 @@ + + @@ -1880,6 +2287,8 @@ + + @@ -1894,6 +2303,8 @@ + + @@ -1908,6 +2319,8 @@ + + @@ -1922,6 +2335,8 @@ + + @@ -1936,6 +2351,8 @@ + + @@ -1950,6 +2367,8 @@ + + @@ -1964,6 +2383,8 @@ + + @@ -1978,6 +2399,8 @@ + + @@ -1992,6 +2415,8 @@ + + @@ -2006,6 +2431,8 @@ + + @@ -2020,6 +2447,8 @@ + + @@ -2034,6 +2463,8 @@ + + @@ -2048,6 +2479,8 @@ + + @@ -2062,6 +2495,8 @@ + + @@ -2076,6 +2511,8 @@ + + @@ -2090,6 +2527,8 @@ + + @@ -2104,6 +2543,8 @@ + + @@ -2118,6 +2559,8 @@ + + @@ -2132,6 +2575,8 @@ + + @@ -2146,6 +2591,8 @@ + + @@ -2160,6 +2607,8 @@ + + @@ -2174,6 +2623,8 @@ + + @@ -2188,6 +2639,8 @@ + + @@ -2202,6 +2655,8 @@ + + @@ -2216,6 +2671,8 @@ + + @@ -2230,6 +2687,8 @@ + + @@ -2244,6 +2703,8 @@ + + @@ -2258,6 +2719,8 @@ + + @@ -2272,6 +2735,8 @@ + + @@ -2286,6 +2751,8 @@ + + @@ -2300,6 +2767,8 @@ + + @@ -2314,6 +2783,8 @@ + + @@ -2328,6 +2799,8 @@ + + @@ -2342,6 +2815,8 @@ + + @@ -2356,6 +2831,8 @@ + + @@ -2370,6 +2847,8 @@ + + @@ -2384,6 +2863,8 @@ + + @@ -2398,6 +2879,8 @@ + + @@ -2412,6 +2895,8 @@ + + @@ -2426,6 +2911,8 @@ + + @@ -2440,6 +2927,8 @@ + + @@ -2454,6 +2943,8 @@ + + @@ -2468,6 +2959,8 @@ + + @@ -2482,6 +2975,8 @@ + + @@ -2496,6 +2991,8 @@ + + @@ -2510,6 +3007,8 @@ + + @@ -2524,6 +3023,8 @@ + + @@ -2538,6 +3039,8 @@ + + @@ -2552,6 +3055,8 @@ + + @@ -2566,6 +3071,8 @@ + + @@ -2580,6 +3087,8 @@ + + @@ -2594,6 +3103,8 @@ + + @@ -2608,6 +3119,8 @@ + + @@ -2622,6 +3135,8 @@ + + @@ -2636,6 +3151,8 @@ + + @@ -2650,6 +3167,8 @@ + + @@ -2664,6 +3183,8 @@ + + @@ -2678,6 +3199,8 @@ + + @@ -2692,6 +3215,8 @@ + + @@ -2706,6 +3231,8 @@ + + @@ -2720,6 +3247,8 @@ + + @@ -2734,6 +3263,8 @@ + + @@ -2748,6 +3279,8 @@ + + @@ -2762,6 +3295,8 @@ + + @@ -2776,6 +3311,8 @@ + + @@ -2790,6 +3327,8 @@ + + @@ -2804,6 +3343,8 @@ + + @@ -2818,6 +3359,8 @@ + + @@ -2832,6 +3375,8 @@ + + @@ -2846,6 +3391,8 @@ + + @@ -2860,6 +3407,8 @@ + + @@ -2874,6 +3423,8 @@ + + @@ -2888,6 +3439,8 @@ + + @@ -2902,6 +3455,8 @@ + + @@ -2916,6 +3471,8 @@ + + @@ -2930,6 +3487,8 @@ + + @@ -2944,6 +3503,8 @@ + + @@ -2958,6 +3519,8 @@ + + @@ -2972,6 +3535,8 @@ + + @@ -2986,6 +3551,8 @@ + + @@ -3000,6 +3567,8 @@ + + @@ -3014,6 +3583,8 @@ + + @@ -3028,6 +3599,8 @@ + + @@ -3042,6 +3615,8 @@ + + @@ -3056,6 +3631,8 @@ + + @@ -3070,6 +3647,8 @@ + + @@ -3084,6 +3663,8 @@ + + @@ -3098,6 +3679,8 @@ + + @@ -3112,6 +3695,8 @@ + + @@ -3126,6 +3711,8 @@ + + @@ -3140,6 +3727,8 @@ + + @@ -3154,6 +3743,8 @@ + + @@ -3168,6 +3759,8 @@ + + @@ -3182,6 +3775,8 @@ + + @@ -3196,6 +3791,8 @@ + + @@ -3210,6 +3807,8 @@ + + @@ -3224,6 +3823,8 @@ + + @@ -3238,6 +3839,8 @@ + + @@ -3252,6 +3855,8 @@ + + @@ -3266,6 +3871,8 @@ + + @@ -3280,6 +3887,8 @@ + + @@ -3294,6 +3903,8 @@ + + @@ -3308,6 +3919,8 @@ + + @@ -3322,6 +3935,8 @@ + + @@ -3336,6 +3951,8 @@ + + @@ -3350,6 +3967,8 @@ + + @@ -3364,6 +3983,8 @@ + + @@ -3378,6 +3999,8 @@ + + @@ -3392,6 +4015,8 @@ + + @@ -3406,6 +4031,8 @@ + + @@ -3420,6 +4047,8 @@ + + @@ -3434,6 +4063,8 @@ + + @@ -3448,6 +4079,8 @@ + + @@ -3462,6 +4095,8 @@ + + @@ -3476,6 +4111,8 @@ + + @@ -3490,6 +4127,8 @@ + + @@ -3504,6 +4143,8 @@ + + @@ -3518,6 +4159,8 @@ + + @@ -3532,6 +4175,8 @@ + + @@ -3546,6 +4191,8 @@ + + @@ -3560,6 +4207,8 @@ + + @@ -3574,6 +4223,8 @@ + + @@ -3588,6 +4239,8 @@ + + @@ -3602,6 +4255,8 @@ + + @@ -3616,6 +4271,8 @@ + + @@ -3630,6 +4287,8 @@ + + @@ -3644,6 +4303,8 @@ + + @@ -3658,6 +4319,8 @@ + + @@ -3672,6 +4335,8 @@ + + @@ -3686,6 +4351,8 @@ + + @@ -3700,6 +4367,8 @@ + + @@ -3714,6 +4383,8 @@ + + @@ -3728,6 +4399,8 @@ + + @@ -3742,6 +4415,8 @@ + + @@ -3756,6 +4431,8 @@ + + @@ -3770,6 +4447,8 @@ + + @@ -3784,6 +4463,8 @@ + + @@ -3798,6 +4479,8 @@ + + @@ -3812,6 +4495,8 @@ + + @@ -3826,6 +4511,8 @@ + + @@ -3840,6 +4527,8 @@ + + @@ -3854,6 +4543,8 @@ + + @@ -3868,6 +4559,8 @@ + + @@ -3882,6 +4575,8 @@ + + @@ -3896,6 +4591,8 @@ + + @@ -3910,6 +4607,8 @@ + + @@ -3924,6 +4623,8 @@ + + @@ -3938,6 +4639,8 @@ + + @@ -3952,6 +4655,8 @@ + + @@ -3966,6 +4671,8 @@ + + @@ -3980,6 +4687,8 @@ + + @@ -3994,6 +4703,8 @@ + + @@ -4008,6 +4719,8 @@ + + @@ -4022,6 +4735,8 @@ + + @@ -4036,6 +4751,8 @@ + + @@ -4050,6 +4767,8 @@ + + @@ -4064,6 +4783,8 @@ + + @@ -4078,6 +4799,8 @@ + + @@ -4092,6 +4815,8 @@ + + @@ -4106,6 +4831,8 @@ + + @@ -4120,6 +4847,8 @@ + + @@ -4134,6 +4863,8 @@ + + @@ -4148,6 +4879,8 @@ + + @@ -4162,6 +4895,8 @@ + + @@ -4176,6 +4911,8 @@ + + @@ -4190,6 +4927,8 @@ + + @@ -4204,6 +4943,8 @@ + + @@ -4218,6 +4959,8 @@ + + @@ -4232,6 +4975,8 @@ + + @@ -4246,6 +4991,8 @@ + + @@ -4260,6 +5007,8 @@ + + @@ -4274,6 +5023,8 @@ + + @@ -4288,6 +5039,8 @@ + + @@ -4302,6 +5055,8 @@ + + @@ -4316,6 +5071,8 @@ + + @@ -4330,6 +5087,8 @@ + + @@ -4344,6 +5103,8 @@ + + @@ -4358,6 +5119,8 @@ + + @@ -4372,6 +5135,8 @@ + + @@ -4386,6 +5151,8 @@ + + @@ -4400,6 +5167,8 @@ + + @@ -4414,6 +5183,8 @@ + + @@ -4428,6 +5199,8 @@ + + @@ -4442,6 +5215,8 @@ + + @@ -4456,6 +5231,8 @@ + + @@ -4470,6 +5247,8 @@ + + @@ -4484,6 +5263,8 @@ + + @@ -4498,6 +5279,8 @@ + + @@ -4512,6 +5295,8 @@ + + @@ -4526,6 +5311,8 @@ + + @@ -4540,6 +5327,8 @@ + + @@ -4554,6 +5343,8 @@ + + @@ -4568,6 +5359,8 @@ + + @@ -4582,6 +5375,8 @@ + + @@ -4596,6 +5391,8 @@ + + @@ -4610,6 +5407,8 @@ + + @@ -4624,6 +5423,8 @@ + + @@ -4638,6 +5439,8 @@ + + @@ -4652,6 +5455,8 @@ + + @@ -4666,6 +5471,8 @@ + + @@ -4680,6 +5487,8 @@ + + @@ -4694,6 +5503,8 @@ + + @@ -4708,6 +5519,8 @@ + + @@ -4722,6 +5535,8 @@ + + @@ -4736,6 +5551,8 @@ + + @@ -4750,6 +5567,8 @@ + + @@ -4764,6 +5583,8 @@ + + @@ -4778,6 +5599,8 @@ + + @@ -4792,6 +5615,8 @@ + + @@ -4806,6 +5631,8 @@ + + @@ -4820,6 +5647,8 @@ + + @@ -4834,6 +5663,8 @@ + + @@ -4848,6 +5679,8 @@ + + @@ -4862,6 +5695,8 @@ + + @@ -4876,6 +5711,8 @@ + + @@ -4890,6 +5727,8 @@ + + @@ -4904,6 +5743,8 @@ + + @@ -4918,6 +5759,8 @@ + + @@ -4932,6 +5775,8 @@ + + @@ -4946,6 +5791,8 @@ + + @@ -4960,6 +5807,8 @@ + + @@ -4974,6 +5823,8 @@ + + @@ -4988,6 +5839,8 @@ + + @@ -5002,6 +5855,8 @@ + + @@ -5016,6 +5871,8 @@ + + @@ -5030,6 +5887,8 @@ + + @@ -5044,6 +5903,8 @@ + + @@ -5058,6 +5919,8 @@ + + @@ -5072,6 +5935,8 @@ + + @@ -5086,6 +5951,8 @@ + + @@ -5100,6 +5967,8 @@ + + @@ -5114,6 +5983,8 @@ + + @@ -5128,6 +5999,8 @@ + + @@ -5142,6 +6015,8 @@ + + @@ -5156,6 +6031,8 @@ + + @@ -5170,6 +6047,8 @@ + + @@ -5184,6 +6063,8 @@ + + @@ -5198,6 +6079,8 @@ + + @@ -5212,6 +6095,8 @@ + + @@ -5226,6 +6111,8 @@ + + @@ -5240,6 +6127,8 @@ + + @@ -5254,6 +6143,8 @@ + + @@ -5268,6 +6159,8 @@ + + @@ -5282,6 +6175,8 @@ + + @@ -5296,6 +6191,8 @@ + + @@ -5310,6 +6207,8 @@ + + @@ -5324,6 +6223,8 @@ + + @@ -5338,6 +6239,8 @@ + + @@ -5352,6 +6255,8 @@ + + @@ -5366,6 +6271,8 @@ + + @@ -5380,6 +6287,8 @@ + + @@ -5394,6 +6303,8 @@ + + @@ -5408,6 +6319,8 @@ + + @@ -5422,6 +6335,8 @@ + + @@ -5436,6 +6351,8 @@ + + @@ -5450,6 +6367,8 @@ + + @@ -5464,6 +6383,8 @@ + + @@ -5478,6 +6399,8 @@ + + @@ -5492,6 +6415,8 @@ + + @@ -5506,6 +6431,8 @@ + + @@ -5520,6 +6447,8 @@ + + @@ -5534,6 +6463,8 @@ + + @@ -5548,6 +6479,8 @@ + + @@ -5562,6 +6495,8 @@ + + @@ -5576,6 +6511,8 @@ + + @@ -5590,6 +6527,8 @@ + + @@ -5604,6 +6543,8 @@ + + @@ -5618,6 +6559,8 @@ + + @@ -5632,6 +6575,8 @@ + + @@ -5646,6 +6591,8 @@ + + @@ -5660,6 +6607,8 @@ + + @@ -5674,6 +6623,8 @@ + + @@ -5688,6 +6639,8 @@ + + @@ -5702,6 +6655,8 @@ + + @@ -5716,6 +6671,8 @@ + + @@ -5730,6 +6687,8 @@ + + @@ -5744,6 +6703,8 @@ + + @@ -5758,6 +6719,8 @@ + + @@ -5772,6 +6735,8 @@ + + @@ -5786,6 +6751,8 @@ + + @@ -5800,6 +6767,8 @@ + + @@ -5814,6 +6783,8 @@ + + @@ -5828,6 +6799,8 @@ + + @@ -5842,6 +6815,8 @@ + + @@ -5856,6 +6831,8 @@ + + @@ -5870,6 +6847,8 @@ + + @@ -5884,6 +6863,8 @@ + + @@ -5898,6 +6879,8 @@ + + @@ -5912,6 +6895,8 @@ + + @@ -5926,6 +6911,8 @@ + + @@ -5940,6 +6927,8 @@ + + @@ -5954,6 +6943,8 @@ + + @@ -5968,6 +6959,8 @@ + + @@ -5982,6 +6975,8 @@ + + @@ -5996,6 +6991,8 @@ + + @@ -6010,6 +7007,8 @@ + + @@ -6024,6 +7023,8 @@ + + @@ -6038,6 +7039,8 @@ + + @@ -6052,6 +7055,8 @@ + + @@ -6066,6 +7071,8 @@ + + @@ -6080,6 +7087,8 @@ + + @@ -6094,6 +7103,8 @@ + + @@ -6108,6 +7119,8 @@ + + @@ -6122,6 +7135,8 @@ + + @@ -6136,6 +7151,8 @@ + + @@ -6150,6 +7167,8 @@ + + @@ -6164,6 +7183,8 @@ + + @@ -6178,6 +7199,8 @@ + + @@ -6192,6 +7215,8 @@ + + @@ -6206,6 +7231,8 @@ + + @@ -6220,6 +7247,8 @@ + + @@ -6234,6 +7263,8 @@ + + @@ -6248,6 +7279,8 @@ + + @@ -6262,6 +7295,8 @@ + + @@ -6276,6 +7311,8 @@ + + @@ -6290,6 +7327,8 @@ + + @@ -6304,6 +7343,8 @@ + + @@ -6318,6 +7359,8 @@ + + @@ -6332,6 +7375,8 @@ + + @@ -6346,6 +7391,8 @@ + + @@ -6360,6 +7407,8 @@ + + @@ -6473,7 +7522,7 @@ link.download = "hs3_db_label_" + template + "_" + item_id + ".lbx"; link.click(); } - + document.addEventListener("DOMContentLoaded", async () => { await initTemplates(); diff --git a/docs/static/css/style.css b/fegen/docs/static/css/style.css similarity index 100% rename from docs/static/css/style.css rename to fegen/docs/static/css/style.css diff --git a/docs/static/xml/label_12.xml b/fegen/docs/static/xml/label_12.xml similarity index 100% rename from docs/static/xml/label_12.xml rename to fegen/docs/static/xml/label_12.xml diff --git a/docs/static/xml/label_18.xml b/fegen/docs/static/xml/label_18.xml similarity index 100% rename from docs/static/xml/label_18.xml rename to fegen/docs/static/xml/label_18.xml diff --git a/docs/static/xml/label_18_flag.xml b/fegen/docs/static/xml/label_18_flag.xml similarity index 100% rename from docs/static/xml/label_18_flag.xml rename to fegen/docs/static/xml/label_18_flag.xml diff --git a/docs/static/xml/label_18_ribbon.xml b/fegen/docs/static/xml/label_18_ribbon.xml similarity index 100% rename from docs/static/xml/label_18_ribbon.xml rename to fegen/docs/static/xml/label_18_ribbon.xml diff --git a/docs/static/xml/prop.xml b/fegen/docs/static/xml/prop.xml similarity index 100% rename from docs/static/xml/prop.xml rename to fegen/docs/static/xml/prop.xml diff --git a/main.py b/fegen/main.py similarity index 67% rename from main.py rename to fegen/main.py index 1415ca2..eb8dd58 100644 --- a/main.py +++ b/fegen/main.py @@ -1,7 +1,6 @@ import os, re, shutil from jinja2 import Environment, FileSystemLoader import pandas as pd -from discourse import DiscourseDatabase def add_download_button(row): @@ -9,23 +8,22 @@ def add_download_button(row): download_button = ( f'' ) - return row + [download_button] + print_button = f'' + return row + [download_button, print_button] def generate_dashboard(): """Generate dashboard from zasoby.csv file""" print("Generating HTML dashboard") - website_folder = "docs" + website_folder = "fegen/docs" data = pd.read_csv("zasoby.csv") - env = Environment(loader=FileSystemLoader("template")) + env = Environment(loader=FileSystemLoader("fegen/template")) print("Removing old website files") - shutil.rmtree(f"./{website_folder}") - os.mkdir(f"./{website_folder}") print("Creating a new website") - shutil.copytree("template/static", f"{website_folder}/static") + shutil.copytree("fegen/template/static", f"{website_folder}/static", dirs_exist_ok=True) template = env.get_template("_main_layout.html") with open(f"{website_folder}/index.html", "w+", encoding="utf-8") as file: - header_row = data.columns.values.tolist() + ["label"] + header_row = data.columns.values.tolist() + ["label", "print"] rows = map( add_download_button, data.values.tolist(), @@ -39,7 +37,8 @@ def generate_dashboard(): if __name__ == "__main__": + from discourse import DiscourseDatabase + DiscourseDatabase() generate_dashboard() print("Done!") - diff --git a/template/_base_template.html b/fegen/template/_base_template.html similarity index 99% rename from template/_base_template.html rename to fegen/template/_base_template.html index ffdbc2a..a690ec7 100644 --- a/template/_base_template.html +++ b/fegen/template/_base_template.html @@ -130,7 +130,7 @@ link.download = "hs3_db_label_" + template + "_" + item_id + ".lbx"; link.click(); } - + document.addEventListener("DOMContentLoaded", async () => { await initTemplates(); diff --git a/template/_main_layout.html b/fegen/template/_main_layout.html similarity index 87% rename from template/_main_layout.html rename to fegen/template/_main_layout.html index b2be738..579f45d 100644 --- a/template/_main_layout.html +++ b/fegen/template/_main_layout.html @@ -4,6 +4,7 @@
{% block sidenav %}{% endblock sidenav %}

Baza Zasobów Hackerspace Trójmiasto

+
labelprint
376Drukarka 3D HEVO (Hypercube Evolutionlab['lab', '3d-print']
699747Gra Blood Bowl z przyległościamiGra handheld "Crazy Brick" cow-work['cow-work', 'audiolab', 'boardgame', 'sticker-needed']['cow-work', 'video-game']
720745Płytki ewaluacyjne STEVAL-VP318L1F +?lab['lab']
702Wózek na tacki projektowelab['lab']
719Pudełko projektowe "Fala za Falą"lab['lab', 'sticker-needed']
703Tacki projektowelab['lab', 'sticker-needed']
414Tester kabli RJ45, RJ11/12, BNC Lanberglab['lab']
718Zestaw nitonakrętek alu+stal G02910lab['lab']
717Gniazdo DC 5,5/2,5mm do druku - poziomelab['lab', 'electronics']
716Konektor FPC 8-pinlab['lab', 'electronics']
715Przełącznik DIP switch 2 torylab['lab', 'electronics']
714Przełącznik DIP switch 4 torylab['lab', 'electronics']
713Diody LED czerwone, błękitnelab['lab', 'electronics']
712Złącze śrubowe ARK 3-pinowelab['lab', 'electronics']
711Złącze śrubowe ARK 2-pinowelab['lab', 'electronics']
710Złącze śrubowe ARK 4-pinowelab['lab', 'electronics']
709ESP-32lab['lab', 'electronics']
708Origami LED Matrixserver-room['projects', 'server-room']
704Tranzystor PNP bipolarny 50Vlab['lab', 'electronics']
705Tranzystor NPN bipolarny 45Vlab['lab', 'electronics']
707Przycisk monostabilny - tact switchlab['lab', 'electronics']
706Tranzystor T482 BVBR11lab['lab', 'electronics']
561Antena Dipol na 30mlab['lab']
701Celestia - edukacyjna ściana nocnego niebaserver-room['projects', 'server-room']
538Interfejs audio Line6 GXaudiolab['audiolab']
388Zasilacz 16A, 12V dclab['lab']
700Drukarka 3D Creality Ender do samodzielnego złożenialab['lab', 'sticker-needed']
377Drukarka 3D “Elegoo Neptune 4 Pro”lab['lab', '3d-print']
514Pistolet do kleju na gorącolab['lab']
698Disco betoniarkagarage['garage', 'projects', 'sticker-needed']
456Wzmacniacz gitarowy Roland Micro Cubeaudiolab['audiolab']
179Sprzęt komp Desktop Dr Robotomycow-work['cow-work']
585Ścianka narzędziowalab['lab']
584Stojak ze śrubokrętamilab['lab']
583Pudełko z zapalniczkamilab['lab']
582Konwerter ATC-1000 firmy F&Flab['lab']
581Pojemnik z konektoramilab['lab']
580Pudło - rurki / koszulki termokurczliwe, różne rodzajelab['lab']
579Uchwyt na kolbę gorącego powietrza (hot-air) z magnetycznym stolikiem naprawczym W.E.R 628lab['lab']
578Myjka ultradźwiękowa 2lab['lab']
577Żywiczna drukarka 3D Elegoo Mars 2 Prolab['lab', '3d-print']
576Pudło z filamentami kolorowymi krótkimilab['lab', '3d-print']
529Projektor Optomacow-work['cow-work']
527Stacja dokująca USB-C + ładowarka bezprzewodowacow-work['cow-work']
575Pudło z materiałami do drukarek 3Dlab['lab']
574Laminator biurowy Leitz iLAM Office Pro A3lab['lab']
573Deska do krojenia, bambus, 53x46 cmlab['lab']
572Farba Akrylowa Greenishlab['lab']
571Smartphone Nexus LGlab['lab']
570Smartphone Googlelab['lab']
569Smartphone Samsunglab['lab']
568Redmi smartphonelab['lab']
567iPhonelab['lab']
566Materiały do plotera (winyl i inne) + krepalab['lab']
565Antena bazowa HamRadioShop 10 cmlab['lab']
564LORA / Meshtasticlab['lab']
563Przełącznik antenowy na 4 anteny KF ze sterownikiemlab['lab']
562DREMEL 3000lab['lab']
560Przełącznik antenowy z kontroleremStatyw na aparat unknown []
304735Monitor LG StudioWorks 560NSTD17NF03Lunknown[]
734Szuflada z procesorami STM32lab['lab']
732Eksplodujące pudełko HS3 cow-work['cow-work']['cow-work', 'projects']
554731ArcaderOS - Śmieciowy Arcade Charytatywny dla każdegoSTM32F723cow-workunknown['cow-work'][]
283730Telewizor FunaiNUCLEO G431RBcow-workunknown['cow-work'][]
531729Streamer LTO-4 HP M8609ANucleo Expansion Board Led Driverserver-roomunknown['server-room'][]
728Nucleo Expansion Board MultiSensorunknown[]
478Gitara basowa Squier Precision Bassaudiolab['audiolab']
479Guitalele Ever Play GT-WBKaudiolab['audiolab']
481Gitara elektryczna Blond STR-1H MN SFGaudiolab['audiolab']
533Access Point Mikrotik cAP acunknown[]
546481Kwadraty ze sklejki w drewnianych pudełkachGitara elektryczna Blond STR-1H MN SFGunknownaudiolab[]['audiolab']
545479LEGO piedestał z figurkami i jednorożcemGuitalele Ever Play GT-WBKcow-workaudiolab['cow-work']['audiolab']
541456HAM QRP SzpejWzmacniacz gitarowy Roland Micro Cubeunknownaudiolab[]['audiolab']
543PKL, RF7, kable koncentryczne KFunknown[]
542Antena Uda-Yagi 2m i 70 cmunknown[]
370Infiniti mirror - części, pudłolab['lab']
540Icom 706-mk2unknown[]
537Płyta główna GIGABYTE GA-790XT-USB3cow-work['cow-work']
536Płyta główna ECS L7VMM3cow-work['cow-work']
535Płyta główna EPoX EP-8K9A7Icow-work['cow-work']
92Drukarka 3D Creality K1 Maxlab['lab', 'tools', '3d-print']
531Streamer LTO-4 HP M8609Aserver-room['server-room']
376Drukarka 3D HEVO (Hypercube Evolutionlab['lab', '3d-print']
699Gra Blood Bowl z przyległościamicow-work['cow-work', 'audiolab', 'boardgame', 'sticker-needed']
720Płytki ewaluacyjne STEVAL-VP318L1F +?lab['lab']
702Wózek na tacki projektowelab['lab']
719Pudełko projektowe "Fala za Falą"lab['lab', 'sticker-needed']
703Tacki projektowelab['lab', 'sticker-needed']
414Tester kabli RJ45, RJ11/12, BNC Lanberglab['lab']
718Zestaw nitonakrętek alu+stal G02910lab['lab']
717Gniazdo DC 5,5/2,5mm do druku - poziomelab['lab', 'electronics']
716Konektor FPC 8-pinlab['lab', 'electronics']
715Przełącznik DIP switch 2 torylab['lab', 'electronics']
714Przełącznik DIP switch 4 torylab['lab', 'electronics']
713Diody LED czerwone, błękitnelab['lab', 'electronics']
712Złącze śrubowe ARK 3-pinowelab['lab', 'electronics']
711Złącze śrubowe ARK 2-pinowelab['lab', 'electronics']
710Złącze śrubowe ARK 4-pinowelab['lab', 'electronics']
709ESP-32lab['lab', 'electronics']
708Origami LED Matrixserver-room['projects', 'server-room']
704Tranzystor PNP bipolarny 50Vlab['lab', 'electronics']
705Tranzystor NPN bipolarny 45Vlab['lab', 'electronics']
707Przycisk monostabilny - tact switchlab['lab', 'electronics']
706Tranzystor T482 BVBR11lab['lab', 'electronics']
561Antena Dipol na 30mlab['lab']
701Celestia - edukacyjna ściana nocnego niebaserver-room['projects', 'server-room']
538Interfejs audio Line6 GXaudiolab['audiolab']
388Zasilacz 16A, 12V dclab['lab']
700Drukarka 3D Creality Ender do samodzielnego złożenialab['lab', 'sticker-needed']
377Drukarka 3D “Elegoo Neptune 4 Pro”lab['lab', '3d-print']
514Pistolet do kleju na gorącolab['lab']
698Disco betoniarkagarage['garage', 'projects', 'sticker-needed']
179Sprzęt komp Desktop Dr Robotomycow-work['cow-work']
585Ścianka narzędziowalab['lab']
584Stojak ze śrubokrętamilab['lab']
583Pudełko z zapalniczkamilab['lab']
582Konwerter ATC-1000 firmy F&Flab['lab']
581Pojemnik z konektoramilab['lab']
580Pudło - rurki / koszulki termokurczliwe, różne rodzajelab['lab']
579Uchwyt na kolbę gorącego powietrza (hot-air) z magnetycznym stolikiem naprawczym W.E.R 628lab['lab']
578Myjka ultradźwiękowa 2lab['lab']
577Żywiczna drukarka 3D Elegoo Mars 2 Prolab['lab', '3d-print']
576Pudło z filamentami kolorowymi krótkimilab['lab', '3d-print']
529Projektor Optomacow-work['cow-work']
527Stacja dokująca USB-C + ładowarka bezprzewodowacow-work['cow-work']
575Pudło z materiałami do drukarek 3Dlab['lab']
574Laminator biurowy Leitz iLAM Office Pro A3lab['lab']
573Deska do krojenia, bambus, 53x46 cmlab['lab']
572Farba Akrylowa Greenishlab['lab']
571Smartphone Nexus LGlab['lab']
570Smartphone Googlelab['lab']
569Smartphone Samsunglab['lab']
568Redmi smartphonelab['lab']
567iPhonelab['lab']
566Materiały do plotera (winyl i inne) + krepalab['lab']
565Antena bazowa HamRadioShop 10 cmlab['lab']
564LORA / Meshtasticlab['lab']
563Przełącznik antenowy na 4 anteny KF ze sterownikiemlab['lab']
562DREMEL 3000lab['lab']
560Przełącznik antenowy z kontroleremunknown[]
304Monitor LG StudioWorks 560Ncow-work['cow-work']
554ArcaderOS - Śmieciowy Arcade Charytatywny dla każdegocow-work['cow-work']
283Telewizor Funaicow-work['cow-work']
478Gitara basowa Squier Precision Bassaudiolab['audiolab']
533Access Point Mikrotik cAP acunknown[]
546Kwadraty ze sklejki w drewnianych pudełkachunknown[]
545LEGO piedestał z figurkami i jednorożcemcow-work['cow-work']
541HAM QRP Szpejunknown[]
543PKL, RF7, kable koncentryczne KFunknown[]
542Antena Uda-Yagi 2m i 70 cmunknown[]
370Infiniti mirror - części, pudłolab['lab']
540Icom 706-mk2unknown[]
537Płyta główna GIGABYTE GA-790XT-USB3cow-work['cow-work']
536Płyta główna ECS L7VMM3cow-work['cow-work']
535Płyta główna EPoX EP-8K9A7Icow-work['cow-work']
92Drukarka 3D Creality K1 Maxlab['lab', 'tools', '3d-print']
diff --git a/template/static/css/style.css b/fegen/template/static/css/style.css similarity index 100% rename from template/static/css/style.css rename to fegen/template/static/css/style.css diff --git a/template/static/xml/label_12.xml b/fegen/template/static/xml/label_12.xml similarity index 100% rename from template/static/xml/label_12.xml rename to fegen/template/static/xml/label_12.xml diff --git a/template/static/xml/label_18.xml b/fegen/template/static/xml/label_18.xml similarity index 100% rename from template/static/xml/label_18.xml rename to fegen/template/static/xml/label_18.xml diff --git a/template/static/xml/label_18_flag.xml b/fegen/template/static/xml/label_18_flag.xml similarity index 100% rename from template/static/xml/label_18_flag.xml rename to fegen/template/static/xml/label_18_flag.xml diff --git a/template/static/xml/label_18_ribbon.xml b/fegen/template/static/xml/label_18_ribbon.xml similarity index 100% rename from template/static/xml/label_18_ribbon.xml rename to fegen/template/static/xml/label_18_ribbon.xml diff --git a/template/static/xml/prop.xml b/fegen/template/static/xml/prop.xml similarity index 100% rename from template/static/xml/prop.xml rename to fegen/template/static/xml/prop.xml diff --git a/labeler/adapter/fastapi_srv.py b/labeler/adapter/fastapi_srv.py index 2ba98a8..6b0cf75 100644 --- a/labeler/adapter/fastapi_srv.py +++ b/labeler/adapter/fastapi_srv.py @@ -5,9 +5,15 @@ from labeler.infra.e550w_printer.printer import E550W from labeler.infra.renderer import PILRenderer from fastapi import FastAPI +from fastapi.responses import HTMLResponse, RedirectResponse +from fastapi.staticfiles import StaticFiles + +from fegen import discourse, main app = FastAPI() +app.mount("/static", StaticFiles(directory="fegen/docs/static"), name="static") + class LabelingBot: def __init__(self, app: Application): @@ -65,6 +71,11 @@ class LabelingBot: # await update.message.reply_text("Cancelled.") # return ConversationHandler.END +@app.get("/", response_class=HTMLResponse) +async def root(): + with open("fegen/docs/index.html", "r") as f: + index = f.read() + return index @app.get("/print/{item_id}") def print_item(item_id: int, q: str | None = None): @@ -78,3 +89,10 @@ def print_item(item_id: int, q: str | None = None): with open("label.png", "wb") as preview: preview.write(label.bytes) bot.print_qrcode(item_id, 25) + return RedirectResponse(url="/", status_code=302) + +@app.get("/refresh") +def refresh(): + discourse.DiscourseDatabase() + main.generate_dashboard() + return RedirectResponse(url="/", status_code=302) diff --git a/pyproject.toml b/pyproject.toml index c442e92..0666ff1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "python-scratchpad" version = "0.1.0" description = "" # authors = ["Hubert Bryłkowski "] -readme = "README.md" +readme = "readme.md" requires-python = ">=3.11" dependencies = [ "brother-ql @ git+https://github.com/hbrylkowski/brother_ql@4225d13d209e8e4a2c17e87a75f42809e0da8fda", @@ -16,6 +16,10 @@ dependencies = [ "pyasn1==0.4.8,<0.5", "python-telegram-bot>=20.3,<21", "fastapi[standard]>=0.114.0", + "requests==2.32.5", + "Jinja2==3.1.6", + "pandas==2.3.3", + "python-dotenv==1.2.1", ] [tool.poetry.group.dev.dependencies] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 6c001de..0000000 --- a/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -requests==2.32.5 -Jinja2==3.1.6 -pandas==2.3.3 -python-dotenv==1.2.1 \ No newline at end of file diff --git a/uv.lock b/uv.lock index 147a418..727696b 100644 --- a/uv.lock +++ b/uv.lock @@ -4,7 +4,8 @@ requires-python = ">=3.11" resolution-markers = [ "python_full_version >= '3.14'", "python_full_version == '3.13.*'", - "python_full_version < '3.13'", + "python_full_version == '3.12.*'", + "python_full_version < '3.12'", ] [[package]] @@ -418,12 +419,145 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] +[[package]] +name = "numpy" +version = "2.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/10/8b/c265f4823726ab832de836cdd184d0986dcf94480f81e8739692a7ac7af2/numpy-2.4.3.tar.gz", hash = "sha256:483a201202b73495f00dbc83796c6ae63137a9bdade074f7648b3e32613412dd", size = 20727743, upload-time = "2026-03-09T07:58:53.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/51/5093a2df15c4dc19da3f79d1021e891f5dcf1d9d1db6ba38891d5590f3fe/numpy-2.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:33b3bf58ee84b172c067f56aeadc7ee9ab6de69c5e800ab5b10295d54c581adb", size = 16957183, upload-time = "2026-03-09T07:55:57.774Z" }, + { url = "https://files.pythonhosted.org/packages/b5/7c/c061f3de0630941073d2598dc271ac2f6cbcf5c83c74a5870fea07488333/numpy-2.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8ba7b51e71c05aa1f9bc3641463cd82308eab40ce0d5c7e1fd4038cbf9938147", size = 14968734, upload-time = "2026-03-09T07:56:00.494Z" }, + { url = "https://files.pythonhosted.org/packages/ef/27/d26c85cbcd86b26e4f125b0668e7a7c0542d19dd7d23ee12e87b550e95b5/numpy-2.4.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a1988292870c7cb9d0ebb4cc96b4d447513a9644801de54606dc7aabf2b7d920", size = 5475288, upload-time = "2026-03-09T07:56:02.857Z" }, + { url = "https://files.pythonhosted.org/packages/2b/09/3c4abbc1dcd8010bf1a611d174c7aa689fc505585ec806111b4406f6f1b1/numpy-2.4.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:23b46bb6d8ecb68b58c09944483c135ae5f0e9b8d8858ece5e4ead783771d2a9", size = 6805253, upload-time = "2026-03-09T07:56:04.53Z" }, + { url = "https://files.pythonhosted.org/packages/21/bc/e7aa3f6817e40c3f517d407742337cbb8e6fc4b83ce0b55ab780c829243b/numpy-2.4.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a016db5c5dba78fa8fe9f5d80d6708f9c42ab087a739803c0ac83a43d686a470", size = 15969479, upload-time = "2026-03-09T07:56:06.638Z" }, + { url = "https://files.pythonhosted.org/packages/78/51/9f5d7a41f0b51649ddf2f2320595e15e122a40610b233d51928dd6c92353/numpy-2.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:715de7f82e192e8cae5a507a347d97ad17598f8e026152ca97233e3666daaa71", size = 16901035, upload-time = "2026-03-09T07:56:09.405Z" }, + { url = "https://files.pythonhosted.org/packages/64/6e/b221dd847d7181bc5ee4857bfb026182ef69499f9305eb1371cbb1aea626/numpy-2.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2ddb7919366ee468342b91dea2352824c25b55814a987847b6c52003a7c97f15", size = 17325657, upload-time = "2026-03-09T07:56:12.067Z" }, + { url = "https://files.pythonhosted.org/packages/eb/b8/8f3fd2da596e1063964b758b5e3c970aed1949a05200d7e3d46a9d46d643/numpy-2.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a315e5234d88067f2d97e1f2ef670a7569df445d55400f1e33d117418d008d52", size = 18635512, upload-time = "2026-03-09T07:56:14.629Z" }, + { url = "https://files.pythonhosted.org/packages/5c/24/2993b775c37e39d2f8ab4125b44337ab0b2ba106c100980b7c274a22bee7/numpy-2.4.3-cp311-cp311-win32.whl", hash = "sha256:2b3f8d2c4589b1a2028d2a770b0fc4d1f332fb5e01521f4de3199a896d158ddd", size = 6238100, upload-time = "2026-03-09T07:56:17.243Z" }, + { url = "https://files.pythonhosted.org/packages/76/1d/edccf27adedb754db7c4511d5eac8b83f004ae948fe2d3509e8b78097d4c/numpy-2.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:77e76d932c49a75617c6d13464e41203cd410956614d0a0e999b25e9e8d27eec", size = 12609816, upload-time = "2026-03-09T07:56:19.089Z" }, + { url = "https://files.pythonhosted.org/packages/92/82/190b99153480076c8dce85f4cfe7d53ea84444145ffa54cb58dcd460d66b/numpy-2.4.3-cp311-cp311-win_arm64.whl", hash = "sha256:eb610595dd91560905c132c709412b512135a60f1851ccbd2c959e136431ff67", size = 10485757, upload-time = "2026-03-09T07:56:21.753Z" }, + { url = "https://files.pythonhosted.org/packages/a9/ed/6388632536f9788cea23a3a1b629f25b43eaacd7d7377e5d6bc7b9deb69b/numpy-2.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:61b0cbabbb6126c8df63b9a3a0c4b1f44ebca5e12ff6997b80fcf267fb3150ef", size = 16669628, upload-time = "2026-03-09T07:56:24.252Z" }, + { url = "https://files.pythonhosted.org/packages/74/1b/ee2abfc68e1ce728b2958b6ba831d65c62e1b13ce3017c13943f8f9b5b2e/numpy-2.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7395e69ff32526710748f92cd8c9849b361830968ea3e24a676f272653e8983e", size = 14696872, upload-time = "2026-03-09T07:56:26.991Z" }, + { url = "https://files.pythonhosted.org/packages/ba/d1/780400e915ff5638166f11ca9dc2c5815189f3d7cf6f8759a1685e586413/numpy-2.4.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:abdce0f71dcb4a00e4e77f3faf05e4616ceccfe72ccaa07f47ee79cda3b7b0f4", size = 5203489, upload-time = "2026-03-09T07:56:29.414Z" }, + { url = "https://files.pythonhosted.org/packages/0b/bb/baffa907e9da4cc34a6e556d6d90e032f6d7a75ea47968ea92b4858826c4/numpy-2.4.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:48da3a4ee1336454b07497ff7ec83903efa5505792c4e6d9bf83d99dc07a1e18", size = 6550814, upload-time = "2026-03-09T07:56:32.225Z" }, + { url = "https://files.pythonhosted.org/packages/7b/12/8c9f0c6c95f76aeb20fc4a699c33e9f827fa0d0f857747c73bb7b17af945/numpy-2.4.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:32e3bef222ad6b052280311d1d60db8e259e4947052c3ae7dd6817451fc8a4c5", size = 15666601, upload-time = "2026-03-09T07:56:34.461Z" }, + { url = "https://files.pythonhosted.org/packages/bd/79/cc665495e4d57d0aa6fbcc0aa57aa82671dfc78fbf95fe733ed86d98f52a/numpy-2.4.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7dd01a46700b1967487141a66ac1a3cf0dd8ebf1f08db37d46389401512ca97", size = 16621358, upload-time = "2026-03-09T07:56:36.852Z" }, + { url = "https://files.pythonhosted.org/packages/a8/40/b4ecb7224af1065c3539f5ecfff879d090de09608ad1008f02c05c770cb3/numpy-2.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:76f0f283506c28b12bba319c0fab98217e9f9b54e6160e9c79e9f7348ba32e9c", size = 17016135, upload-time = "2026-03-09T07:56:39.337Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b1/6a88e888052eed951afed7a142dcdf3b149a030ca59b4c71eef085858e43/numpy-2.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:737f630a337364665aba3b5a77e56a68cc42d350edd010c345d65a3efa3addcc", size = 18345816, upload-time = "2026-03-09T07:56:42.31Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8f/103a60c5f8c3d7fc678c19cd7b2476110da689ccb80bc18050efbaeae183/numpy-2.4.3-cp312-cp312-win32.whl", hash = "sha256:26952e18d82a1dbbc2f008d402021baa8d6fc8e84347a2072a25e08b46d698b9", size = 5960132, upload-time = "2026-03-09T07:56:44.851Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7c/f5ee1bf6ed888494978046a809df2882aad35d414b622893322df7286879/numpy-2.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:65f3c2455188f09678355f5cae1f959a06b778bc66d535da07bf2ef20cd319d5", size = 12316144, upload-time = "2026-03-09T07:56:47.057Z" }, + { url = "https://files.pythonhosted.org/packages/71/46/8d1cb3f7a00f2fb6394140e7e6623696e54c6318a9d9691bb4904672cf42/numpy-2.4.3-cp312-cp312-win_arm64.whl", hash = "sha256:2abad5c7fef172b3377502bde47892439bae394a71bc329f31df0fd829b41a9e", size = 10220364, upload-time = "2026-03-09T07:56:49.849Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d0/1fe47a98ce0df229238b77611340aff92d52691bcbc10583303181abf7fc/numpy-2.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b346845443716c8e542d54112966383b448f4a3ba5c66409771b8c0889485dd3", size = 16665297, upload-time = "2026-03-09T07:56:52.296Z" }, + { url = "https://files.pythonhosted.org/packages/27/d9/4e7c3f0e68dfa91f21c6fb6cf839bc829ec920688b1ce7ec722b1a6202fb/numpy-2.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2629289168f4897a3c4e23dc98d6f1731f0fc0fe52fb9db19f974041e4cc12b9", size = 14691853, upload-time = "2026-03-09T07:56:54.992Z" }, + { url = "https://files.pythonhosted.org/packages/3a/66/bd096b13a87549683812b53ab211e6d413497f84e794fb3c39191948da97/numpy-2.4.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:bb2e3cf95854233799013779216c57e153c1ee67a0bf92138acca0e429aefaee", size = 5198435, upload-time = "2026-03-09T07:56:57.184Z" }, + { url = "https://files.pythonhosted.org/packages/a2/2f/687722910b5a5601de2135c891108f51dfc873d8e43c8ed9f4ebb440b4a2/numpy-2.4.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:7f3408ff897f8ab07a07fbe2823d7aee6ff644c097cc1f90382511fe982f647f", size = 6546347, upload-time = "2026-03-09T07:56:59.531Z" }, + { url = "https://files.pythonhosted.org/packages/bf/ec/7971c4e98d86c564750393fab8d7d83d0a9432a9d78bb8a163a6dc59967a/numpy-2.4.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:decb0eb8a53c3b009b0962378065589685d66b23467ef5dac16cbe818afde27f", size = 15664626, upload-time = "2026-03-09T07:57:01.385Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/7daecbea84ec935b7fc732e18f532073064a3816f0932a40a17f3349185f/numpy-2.4.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5f51900414fc9204a0e0da158ba2ac52b75656e7dce7e77fb9f84bfa343b4cc", size = 16608916, upload-time = "2026-03-09T07:57:04.008Z" }, + { url = "https://files.pythonhosted.org/packages/df/58/2a2b4a817ffd7472dca4421d9f0776898b364154e30c95f42195041dc03b/numpy-2.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6bd06731541f89cdc01b261ba2c9e037f1543df7472517836b78dfb15bd6e476", size = 17015824, upload-time = "2026-03-09T07:57:06.347Z" }, + { url = "https://files.pythonhosted.org/packages/4a/ca/627a828d44e78a418c55f82dd4caea8ea4a8ef24e5144d9e71016e52fb40/numpy-2.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:22654fe6be0e5206f553a9250762c653d3698e46686eee53b399ab90da59bd92", size = 18334581, upload-time = "2026-03-09T07:57:09.114Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c0/76f93962fc79955fcba30a429b62304332345f22d4daec1cb33653425643/numpy-2.4.3-cp313-cp313-win32.whl", hash = "sha256:d71e379452a2f670ccb689ec801b1218cd3983e253105d6e83780967e899d687", size = 5958618, upload-time = "2026-03-09T07:57:11.432Z" }, + { url = "https://files.pythonhosted.org/packages/b1/3c/88af0040119209b9b5cb59485fa48b76f372c73068dbf9254784b975ac53/numpy-2.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:0a60e17a14d640f49146cb38e3f105f571318db7826d9b6fef7e4dce758faecd", size = 12312824, upload-time = "2026-03-09T07:57:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/58/ce/3d07743aced3d173f877c3ef6a454c2174ba42b584ab0b7e6d99374f51ed/numpy-2.4.3-cp313-cp313-win_arm64.whl", hash = "sha256:c9619741e9da2059cd9c3f206110b97583c7152c1dc9f8aafd4beb450ac1c89d", size = 10221218, upload-time = "2026-03-09T07:57:16.183Z" }, + { url = "https://files.pythonhosted.org/packages/62/09/d96b02a91d09e9d97862f4fc8bfebf5400f567d8eb1fe4b0cc4795679c15/numpy-2.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7aa4e54f6469300ebca1d9eb80acd5253cdfa36f2c03d79a35883687da430875", size = 14819570, upload-time = "2026-03-09T07:57:18.564Z" }, + { url = "https://files.pythonhosted.org/packages/b5/ca/0b1aba3905fdfa3373d523b2b15b19029f4f3031c87f4066bd9d20ef6c6b/numpy-2.4.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d1b90d840b25874cf5cd20c219af10bac3667db3876d9a495609273ebe679070", size = 5326113, upload-time = "2026-03-09T07:57:21.052Z" }, + { url = "https://files.pythonhosted.org/packages/c0/63/406e0fd32fcaeb94180fd6a4c41e55736d676c54346b7efbce548b94a914/numpy-2.4.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a749547700de0a20a6718293396ec237bb38218049cfce788e08fcb716e8cf73", size = 6646370, upload-time = "2026-03-09T07:57:22.804Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d0/10f7dc157d4b37af92720a196be6f54f889e90dcd30dce9dc657ed92c257/numpy-2.4.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94f3c4a151a2e529adf49c1d54f0f57ff8f9b233ee4d44af623a81553ab86368", size = 15723499, upload-time = "2026-03-09T07:57:24.693Z" }, + { url = "https://files.pythonhosted.org/packages/66/f1/d1c2bf1161396629701bc284d958dc1efa3a5a542aab83cf11ee6eb4cba5/numpy-2.4.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22c31dc07025123aedf7f2db9e91783df13f1776dc52c6b22c620870dc0fab22", size = 16657164, upload-time = "2026-03-09T07:57:27.676Z" }, + { url = "https://files.pythonhosted.org/packages/1a/be/cca19230b740af199ac47331a21c71e7a3d0ba59661350483c1600d28c37/numpy-2.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:148d59127ac95979d6f07e4d460f934ebdd6eed641db9c0db6c73026f2b2101a", size = 17081544, upload-time = "2026-03-09T07:57:30.664Z" }, + { url = "https://files.pythonhosted.org/packages/b9/c5/9602b0cbb703a0936fb40f8a95407e8171935b15846de2f0776e08af04c7/numpy-2.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a97cbf7e905c435865c2d939af3d93f99d18eaaa3cabe4256f4304fb51604349", size = 18380290, upload-time = "2026-03-09T07:57:33.763Z" }, + { url = "https://files.pythonhosted.org/packages/ed/81/9f24708953cd30be9ee36ec4778f4b112b45165812f2ada4cc5ea1c1f254/numpy-2.4.3-cp313-cp313t-win32.whl", hash = "sha256:be3b8487d725a77acccc9924f65fd8bce9af7fac8c9820df1049424a2115af6c", size = 6082814, upload-time = "2026-03-09T07:57:36.491Z" }, + { url = "https://files.pythonhosted.org/packages/e2/9e/52f6eaa13e1a799f0ab79066c17f7016a4a8ae0c1aefa58c82b4dab690b4/numpy-2.4.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1ec84fd7c8e652b0f4aaaf2e6e9cc8eaa9b1b80a537e06b2e3a2fb176eedcb26", size = 12452673, upload-time = "2026-03-09T07:57:38.281Z" }, + { url = "https://files.pythonhosted.org/packages/c4/04/b8cece6ead0b30c9fbd99bb835ad7ea0112ac5f39f069788c5558e3b1ab2/numpy-2.4.3-cp313-cp313t-win_arm64.whl", hash = "sha256:120df8c0a81ebbf5b9020c91439fccd85f5e018a927a39f624845be194a2be02", size = 10290907, upload-time = "2026-03-09T07:57:40.747Z" }, + { url = "https://files.pythonhosted.org/packages/70/ae/3936f79adebf8caf81bd7a599b90a561334a658be4dcc7b6329ebf4ee8de/numpy-2.4.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5884ce5c7acfae1e4e1b6fde43797d10aa506074d25b531b4f54bde33c0c31d4", size = 16664563, upload-time = "2026-03-09T07:57:43.817Z" }, + { url = "https://files.pythonhosted.org/packages/9b/62/760f2b55866b496bb1fa7da2a6db076bef908110e568b02fcfc1422e2a3a/numpy-2.4.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:297837823f5bc572c5f9379b0c9f3a3365f08492cbdc33bcc3af174372ebb168", size = 14702161, upload-time = "2026-03-09T07:57:46.169Z" }, + { url = "https://files.pythonhosted.org/packages/32/af/a7a39464e2c0a21526fb4fb76e346fb172ebc92f6d1c7a07c2c139cc17b1/numpy-2.4.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:a111698b4a3f8dcbe54c64a7708f049355abd603e619013c346553c1fd4ca90b", size = 5208738, upload-time = "2026-03-09T07:57:48.506Z" }, + { url = "https://files.pythonhosted.org/packages/29/8c/2a0cf86a59558fa078d83805589c2de490f29ed4fb336c14313a161d358a/numpy-2.4.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:4bd4741a6a676770e0e97fe9ab2e51de01183df3dcbcec591d26d331a40de950", size = 6543618, upload-time = "2026-03-09T07:57:50.591Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b8/612ce010c0728b1c363fa4ea3aa4c22fe1c5da1de008486f8c2f5cb92fae/numpy-2.4.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:54f29b877279d51e210e0c80709ee14ccbbad647810e8f3d375561c45ef613dd", size = 15680676, upload-time = "2026-03-09T07:57:52.34Z" }, + { url = "https://files.pythonhosted.org/packages/a9/7e/4f120ecc54ba26ddf3dc348eeb9eb063f421de65c05fc961941798feea18/numpy-2.4.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:679f2a834bae9020f81534671c56fd0cc76dd7e5182f57131478e23d0dc59e24", size = 16613492, upload-time = "2026-03-09T07:57:54.91Z" }, + { url = "https://files.pythonhosted.org/packages/2c/86/1b6020db73be330c4b45d5c6ee4295d59cfeef0e3ea323959d053e5a6909/numpy-2.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d84f0f881cb2225c2dfd7f78a10a5645d487a496c6668d6cc39f0f114164f3d0", size = 17031789, upload-time = "2026-03-09T07:57:57.641Z" }, + { url = "https://files.pythonhosted.org/packages/07/3a/3b90463bf41ebc21d1b7e06079f03070334374208c0f9a1f05e4ae8455e7/numpy-2.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d213c7e6e8d211888cc359bab7199670a00f5b82c0978b9d1c75baf1eddbeac0", size = 18339941, upload-time = "2026-03-09T07:58:00.577Z" }, + { url = "https://files.pythonhosted.org/packages/a8/74/6d736c4cd962259fd8bae9be27363eb4883a2f9069763747347544c2a487/numpy-2.4.3-cp314-cp314-win32.whl", hash = "sha256:52077feedeff7c76ed7c9f1a0428558e50825347b7545bbb8523da2cd55c547a", size = 6007503, upload-time = "2026-03-09T07:58:03.331Z" }, + { url = "https://files.pythonhosted.org/packages/48/39/c56ef87af669364356bb011922ef0734fc49dad51964568634c72a009488/numpy-2.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:0448e7f9caefb34b4b7dd2b77f21e8906e5d6f0365ad525f9f4f530b13df2afc", size = 12444915, upload-time = "2026-03-09T07:58:06.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1f/ab8528e38d295fd349310807496fabb7cf9fe2e1f70b97bc20a483ea9d4a/numpy-2.4.3-cp314-cp314-win_arm64.whl", hash = "sha256:b44fd60341c4d9783039598efadd03617fa28d041fc37d22b62d08f2027fa0e7", size = 10494875, upload-time = "2026-03-09T07:58:08.734Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ef/b7c35e4d5ef141b836658ab21a66d1a573e15b335b1d111d31f26c8ef80f/numpy-2.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0a195f4216be9305a73c0e91c9b026a35f2161237cf1c6de9b681637772ea657", size = 14822225, upload-time = "2026-03-09T07:58:11.034Z" }, + { url = "https://files.pythonhosted.org/packages/cd/8d/7730fa9278cf6648639946cc816e7cc89f0d891602584697923375f801ed/numpy-2.4.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:cd32fbacb9fd1bf041bf8e89e4576b6f00b895f06d00914820ae06a616bdfef7", size = 5328769, upload-time = "2026-03-09T07:58:13.67Z" }, + { url = "https://files.pythonhosted.org/packages/47/01/d2a137317c958b074d338807c1b6a383406cdf8b8e53b075d804cc3d211d/numpy-2.4.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:2e03c05abaee1f672e9d67bc858f300b5ccba1c21397211e8d77d98350972093", size = 6649461, upload-time = "2026-03-09T07:58:15.912Z" }, + { url = "https://files.pythonhosted.org/packages/5c/34/812ce12bc0f00272a4b0ec0d713cd237cb390666eb6206323d1cc9cedbb2/numpy-2.4.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d1ce23cce91fcea443320a9d0ece9b9305d4368875bab09538f7a5b4131938a", size = 15725809, upload-time = "2026-03-09T07:58:17.787Z" }, + { url = "https://files.pythonhosted.org/packages/25/c0/2aed473a4823e905e765fee3dc2cbf504bd3e68ccb1150fbdabd5c39f527/numpy-2.4.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c59020932feb24ed49ffd03704fbab89f22aa9c0d4b180ff45542fe8918f5611", size = 16655242, upload-time = "2026-03-09T07:58:20.476Z" }, + { url = "https://files.pythonhosted.org/packages/f2/c8/7e052b2fc87aa0e86de23f20e2c42bd261c624748aa8efd2c78f7bb8d8c6/numpy-2.4.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9684823a78a6cd6ad7511fc5e25b07947d1d5b5e2812c93fe99d7d4195130720", size = 17080660, upload-time = "2026-03-09T07:58:23.067Z" }, + { url = "https://files.pythonhosted.org/packages/f3/3d/0876746044db2adcb11549f214d104f2e1be00f07a67edbb4e2812094847/numpy-2.4.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0200b25c687033316fb39f0ff4e3e690e8957a2c3c8d22499891ec58c37a3eb5", size = 18380384, upload-time = "2026-03-09T07:58:25.839Z" }, + { url = "https://files.pythonhosted.org/packages/07/12/8160bea39da3335737b10308df4f484235fd297f556745f13092aa039d3b/numpy-2.4.3-cp314-cp314t-win32.whl", hash = "sha256:5e10da9e93247e554bb1d22f8edc51847ddd7dde52d85ce31024c1b4312bfba0", size = 6154547, upload-time = "2026-03-09T07:58:28.289Z" }, + { url = "https://files.pythonhosted.org/packages/42/f3/76534f61f80d74cc9cdf2e570d3d4eeb92c2280a27c39b0aaf471eda7b48/numpy-2.4.3-cp314-cp314t-win_amd64.whl", hash = "sha256:45f003dbdffb997a03da2d1d0cb41fbd24a87507fb41605c0420a3db5bd4667b", size = 12633645, upload-time = "2026-03-09T07:58:30.384Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b6/7c0d4334c15983cec7f92a69e8ce9b1e6f31857e5ee3a413ac424e6bd63d/numpy-2.4.3-cp314-cp314t-win_arm64.whl", hash = "sha256:4d382735cecd7bcf090172489a525cd7d4087bc331f7df9f60ddc9a296cf208e", size = 10565454, upload-time = "2026-03-09T07:58:33.031Z" }, + { url = "https://files.pythonhosted.org/packages/64/e4/4dab9fb43c83719c29241c535d9e07be73bea4bc0c6686c5816d8e1b6689/numpy-2.4.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c6b124bfcafb9e8d3ed09130dbee44848c20b3e758b6bbf006e641778927c028", size = 16834892, upload-time = "2026-03-09T07:58:35.334Z" }, + { url = "https://files.pythonhosted.org/packages/c9/29/f8b6d4af90fed3dfda84ebc0df06c9833d38880c79ce954e5b661758aa31/numpy-2.4.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:76dbb9d4e43c16cf9aa711fcd8de1e2eeb27539dcefb60a1d5e9f12fae1d1ed8", size = 14893070, upload-time = "2026-03-09T07:58:37.7Z" }, + { url = "https://files.pythonhosted.org/packages/9a/04/a19b3c91dbec0a49269407f15d5753673a09832daed40c45e8150e6fa558/numpy-2.4.3-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:29363fbfa6f8ee855d7569c96ce524845e3d726d6c19b29eceec7dd555dab152", size = 5399609, upload-time = "2026-03-09T07:58:39.853Z" }, + { url = "https://files.pythonhosted.org/packages/79/34/4d73603f5420eab89ea8a67097b31364bf7c30f811d4dd84b1659c7476d9/numpy-2.4.3-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:bc71942c789ef415a37f0d4eab90341425a00d538cd0642445d30b41023d3395", size = 6714355, upload-time = "2026-03-09T07:58:42.365Z" }, + { url = "https://files.pythonhosted.org/packages/58/ad/1100d7229bb248394939a12a8074d485b655e8ed44207d328fdd7fcebc7b/numpy-2.4.3-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e58765ad74dcebd3ef0208a5078fba32dc8ec3578fe84a604432950cd043d79", size = 15800434, upload-time = "2026-03-09T07:58:44.837Z" }, + { url = "https://files.pythonhosted.org/packages/0c/fd/16d710c085d28ba4feaf29ac60c936c9d662e390344f94a6beaa2ac9899b/numpy-2.4.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e236dbda4e1d319d681afcbb136c0c4a8e0f1a5c58ceec2adebb547357fe857", size = 16729409, upload-time = "2026-03-09T07:58:47.972Z" }, + { url = "https://files.pythonhosted.org/packages/57/a7/b35835e278c18b85206834b3aa3abe68e77a98769c59233d1f6300284781/numpy-2.4.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:4b42639cdde6d24e732ff823a3fa5b701d8acad89c4142bc1d0bd6dc85200ba5", size = 12504685, upload-time = "2026-03-09T07:58:50.525Z" }, +] + [[package]] name = "packbits" version = "0.6" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/1b/23/78a967c9b9961258da2bf0d0a63bf12293ccddf96ec77361ee7b44f543f1/packbits-0.6.tar.gz", hash = "sha256:bc6b370bb34e04ac8cfa835e06c0484380affc6d593adb8009dd6c0f7bfff034", size = 2167, upload-time = "2013-04-06T08:22:59.65Z" } +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/fa/7ac648108144a095b4fb6aa3de1954689f7af60a14cf25583f4960ecb878/pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523", size = 11578790, upload-time = "2025-09-29T23:18:30.065Z" }, + { url = "https://files.pythonhosted.org/packages/9b/35/74442388c6cf008882d4d4bdfc4109be87e9b8b7ccd097ad1e7f006e2e95/pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45", size = 10833831, upload-time = "2025-09-29T23:38:56.071Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e4/de154cbfeee13383ad58d23017da99390b91d73f8c11856f2095e813201b/pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66", size = 12199267, upload-time = "2025-09-29T23:18:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b", size = 12789281, upload-time = "2025-09-29T23:18:56.834Z" }, + { url = "https://files.pythonhosted.org/packages/f2/00/a5ac8c7a0e67fd1a6059e40aa08fa1c52cc00709077d2300e210c3ce0322/pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791", size = 13240453, upload-time = "2025-09-29T23:19:09.247Z" }, + { url = "https://files.pythonhosted.org/packages/27/4d/5c23a5bc7bd209231618dd9e606ce076272c9bc4f12023a70e03a86b4067/pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151", size = 13890361, upload-time = "2025-09-29T23:19:25.342Z" }, + { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702, upload-time = "2025-09-29T23:19:38.296Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload-time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload-time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload-time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload-time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload-time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload-time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload-time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload-time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload-time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload-time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload-time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload-time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload-time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload-time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload-time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload-time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload-time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload-time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload-time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload-time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload-time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload-time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload-time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload-time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload-time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload-time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload-time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload-time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload-time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload-time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload-time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload-time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload-time = "2025-09-29T23:31:59.173Z" }, +] + [[package]] name = "pillow" version = "9.5.0" @@ -564,12 +698,24 @@ wheels = [ ] [[package]] -name = "python-dotenv" -version = "1.2.2" +name = "python-dateutil" +version = "2.9.0.post0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, ] [[package]] @@ -589,11 +735,14 @@ dependencies = [ { name = "brother-ql" }, { name = "fastapi", extra = ["standard"] }, { name = "jinja2" }, + { name = "pandas" }, { name = "pillow" }, { name = "pyasn1" }, { name = "pysnmp" }, + { name = "python-dotenv" }, { name = "python-telegram-bot" }, { name = "qrcode", extra = ["pil"] }, + { name = "requests" }, { name = "setuptools" }, ] @@ -601,12 +750,16 @@ dependencies = [ requires-dist = [ { name = "brother-ql", git = "https://github.com/hbrylkowski/brother_ql?rev=4225d13d209e8e4a2c17e87a75f42809e0da8fda" }, { name = "fastapi", extras = ["standard"], specifier = ">=0.114.0" }, + { name = "jinja2", specifier = "==3.1.6" }, { name = "jinja2", specifier = ">=3.1.2,<4" }, + { name = "pandas", specifier = "==2.3.3" }, { name = "pillow", specifier = ">=9.5.0,<10" }, { name = "pyasn1", specifier = "==0.4.8,<0.5" }, { name = "pysnmp", specifier = ">=4.4.12,<5" }, + { name = "python-dotenv", specifier = "==1.2.1" }, { name = "python-telegram-bot", specifier = ">=20.3,<21" }, { name = "qrcode", extras = ["pil"] }, + { name = "requests", specifier = "==2.32.5" }, { name = "setuptools", specifier = "<81" }, ] @@ -622,6 +775,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6f/8e/4e4ed06986557fce0c41c3dfc60c5495b1095cf8a552bdc4c56e96aefdac/python_telegram_bot-20.8-py3-none-any.whl", hash = "sha256:a98ddf2f237d6584b03a2f8b20553e1b5e02c8d3a1ea8e17fd06cc955af78c14", size = 604866, upload-time = "2024-02-08T17:39:12.202Z" }, ] +[[package]] +name = "pytz" +version = "2026.1.post1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/56/db/b8721d71d945e6a8ac63c0fc900b2067181dbb50805958d4d4661cf7d277/pytz-2026.1.post1.tar.gz", hash = "sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1", size = 321088, upload-time = "2026-03-03T07:47:50.683Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/99/781fe0c827be2742bcc775efefccb3b048a3a9c6ce9aec0cbf4a101677e5/pytz-2026.1.post1-py2.py3-none-any.whl", hash = "sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a", size = 510489, upload-time = "2026-03-03T07:47:49.167Z" }, +] + [[package]] name = "pyusb" version = "1.3.1" @@ -763,6 +925,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, ] +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + [[package]] name = "sniffio" version = "1.3.1" @@ -808,6 +979,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] +[[package]] +name = "tzdata" +version = "2025.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, +] + [[package]] name = "urllib3" version = "2.6.3" diff --git a/zasoby.csv b/zasoby.csv index a224a0f..96cf654 100644 --- a/zasoby.csv +++ b/zasoby.csv @@ -1,452 +1,461 @@ -id,title,place,tags -45,"Jak stworzyć nowy wpis do bazy zasobów Hackerspace Trójmiasto?",unknown,[] -20,"O kategorii: Baza Wiedzy Hackerspace'u",unknown,[] -376,"Drukarka 3D HEVO (Hypercube Evolution","lab","['lab', '3d-print']" -699,"Gra Blood Bowl z przyległościami","cow-work","['cow-work', 'audiolab', 'boardgame', 'sticker-needed']" -720,"Płytki ewaluacyjne STEVAL-VP318L1F +?","lab",['lab'] -702,"Wózek na tacki projektowe","lab",['lab'] -719,"Pudełko projektowe ""Fala za Falą""","lab","['lab', 'sticker-needed']" -703,"Tacki projektowe","lab","['lab', 'sticker-needed']" -414,"Tester kabli RJ45, RJ11/12, BNC Lanberg","lab",['lab'] -718,"Zestaw nitonakrętek alu+stal G02910","lab",['lab'] -717,"Gniazdo DC 5,5/2,5mm do druku - poziome","lab","['lab', 'electronics']" -716,"Konektor FPC 8-pin","lab","['lab', 'electronics']" -715,"Przełącznik DIP switch 2 tory","lab","['lab', 'electronics']" -714,"Przełącznik DIP switch 4 tory","lab","['lab', 'electronics']" -713,"Diody LED czerwone, błękitne","lab","['lab', 'electronics']" -712,"Złącze śrubowe ARK 3-pinowe","lab","['lab', 'electronics']" -711,"Złącze śrubowe ARK 2-pinowe","lab","['lab', 'electronics']" -710,"Złącze śrubowe ARK 4-pinowe","lab","['lab', 'electronics']" -709,"ESP-32","lab","['lab', 'electronics']" -708,"Origami LED Matrix","server-room","['projects', 'server-room']" -704,"Tranzystor PNP bipolarny 50V","lab","['lab', 'electronics']" -705,"Tranzystor NPN bipolarny 45V","lab","['lab', 'electronics']" -707,"Przycisk monostabilny - tact switch","lab","['lab', 'electronics']" -706,"Tranzystor T482 BVBR11","lab","['lab', 'electronics']" -561,"Antena Dipol na 30m","lab",['lab'] -701,"Celestia - edukacyjna ściana nocnego nieba","server-room","['projects', 'server-room']" -538,"Interfejs audio Line6 GX","audiolab",['audiolab'] -388,"Zasilacz 16A, 12V dc","lab",['lab'] -700,"Drukarka 3D Creality Ender do samodzielnego złożenia","lab","['lab', 'sticker-needed']" -377,"Drukarka 3D “Elegoo Neptune 4 Pro”","lab","['lab', '3d-print']" -514,"Pistolet do kleju na gorąco","lab",['lab'] -698,"Disco betoniarka","garage","['garage', 'projects', 'sticker-needed']" -456,"Wzmacniacz gitarowy Roland Micro Cube","audiolab",['audiolab'] -179,"Sprzęt komp Desktop Dr Robotomy","cow-work",['cow-work'] -585,"Ścianka narzędziowa","lab",['lab'] -584,"Stojak ze śrubokrętami","lab",['lab'] -583,"Pudełko z zapalniczkami","lab",['lab'] -582,"Konwerter ATC-1000 firmy F&F","lab",['lab'] -581,"Pojemnik z konektorami","lab",['lab'] -580,"Pudło - rurki / koszulki termokurczliwe, różne rodzaje","lab",['lab'] -579,"Uchwyt na kolbę gorącego powietrza (hot-air) z magnetycznym stolikiem naprawczym W.E.R 628","lab",['lab'] -578,"Myjka ultradźwiękowa 2","lab",['lab'] -577,"Żywiczna drukarka 3D Elegoo Mars 2 Pro","lab","['lab', '3d-print']" -576,"Pudło z filamentami kolorowymi krótkimi","lab","['lab', '3d-print']" -529,"Projektor Optoma","cow-work",['cow-work'] -527,"Stacja dokująca USB-C + ładowarka bezprzewodowa","cow-work",['cow-work'] -575,"Pudło z materiałami do drukarek 3D","lab",['lab'] -574,"Laminator biurowy Leitz iLAM Office Pro A3","lab",['lab'] -573,"Deska do krojenia, bambus, 53x46 cm","lab",['lab'] -572,"Farba Akrylowa Greenish","lab",['lab'] -571,"Smartphone Nexus LG","lab",['lab'] -570,"Smartphone Google","lab",['lab'] -569,"Smartphone Samsung","lab",['lab'] -568,"Redmi smartphone","lab",['lab'] -567,"iPhone","lab",['lab'] -566,"Materiały do plotera (winyl i inne) + krepa","lab",['lab'] -565,"Antena bazowa HamRadioShop 10 cm","lab",['lab'] -564,"LORA / Meshtastic","lab",['lab'] -563,"Przełącznik antenowy na 4 anteny KF ze sterownikiem","lab",['lab'] -562,"DREMEL 3000","lab",['lab'] -560,"Przełącznik antenowy z kontrolerem",unknown,[] -304,"Monitor LG StudioWorks 560N","cow-work",['cow-work'] -554,"ArcaderOS - Śmieciowy Arcade Charytatywny dla każdego","cow-work",['cow-work'] -283,"Telewizor Funai","cow-work",['cow-work'] -531,"Streamer LTO-4 HP M8609A","server-room",['server-room'] -285,"Konsola do gier Sony PlayStation 2 Slim + kontroler Namco GunCon","cow-work",['cow-work'] -478,"Gitara basowa Squier Precision Bass","audiolab",['audiolab'] -479,"Guitalele Ever Play GT-WBK","audiolab",['audiolab'] -481,"Gitara elektryczna Blond STR-1H MN SFG","audiolab",['audiolab'] -480,"Gitara elektryczna Blond TE-1 MN BB","audiolab",['audiolab'] -533,"Access Point Mikrotik cAP ac",unknown,[] -546,"Kwadraty ze sklejki w drewnianych pudełkach",unknown,[] -545,"LEGO piedestał z figurkami i jednorożcem","cow-work",['cow-work'] -541,"HAM QRP Szpej",unknown,[] -543,"PKL, RF7, kable koncentryczne KF",unknown,[] -542,"Antena Uda-Yagi 2m i 70 cm",unknown,[] -370,"Infiniti mirror - części, pudło","lab",['lab'] -540,"Icom 706-mk2",unknown,[] -537,"Płyta główna GIGABYTE GA-790XT-USB3","cow-work",['cow-work'] -536,"Płyta główna ECS L7VMM3","cow-work",['cow-work'] -535,"Płyta główna EPoX EP-8K9A7I","cow-work",['cow-work'] -92,"Drukarka 3D Creality K1 Max","lab","['lab', 'tools', '3d-print']" -530,"Discman SONY","audiolab",['audiolab'] -454,"Perkusja Alesis DM8","cow-work","['cow-work', 'audiolab']" -273,"Drukarka Samsung ML-3710ND","cow-work",['cow-work'] -476,"Wieża TECHNICS EH550 - kolumny głośnikowe","audiolab",['audiolab'] -286,"Magnetowid VHS Philips VR 471","cow-work",['cow-work'] -482,"Magnetofon kasetowy Technics RS-B765","audiolab",['audiolab'] -317,"Sound Technology 1700B Distortion Measurement System","cow-work",['cow-work'] -311,"Hung Chang Oscilloscope 5504 40MHz","cow-work",['cow-work'] -279,"Komputer Apple Macintosh SE","cow-work",['cow-work'] -292,"Wieża TECHNICS EH550 - Stereo sound processor SH-EH550","cow-work",['cow-work'] -293,"Wieża TECHNICS EH550 - Stereo cassette deck RS-EH750","cow-work",['cow-work'] -294,"Wieża TECHNICS EH550 - Compact disc player SL-EH750","cow-work",['cow-work'] -291,"Wieża TECHNICS EH550 - Stereo tuner amplifier SA-EH550","cow-work",['cow-work'] -532,"Telefon komórkowy Compas CTKE08",unknown,[] -357,"Radio samochodowe Alpine","audiolab",['audiolab'] -519,"Statyw Keyboard","cow-work","['cow-work', 'audiolab']" -352,"Przejściówki USB-A => Power Jack","cow-work",['cow-work'] -451,"Maty lutownicze","cow-work","['cow-work', 'lab']" -490,"Radiomagnetofon przenośny Panasonic RQ-V77","audiolab",['audiolab'] -312,"Szufladka ""Zestawy adapterów końcówek do zasilacza laptopa"" / końcówki do zasilania","cow-work",['cow-work'] -526,"Monitory",unknown,[] -528,"Stacja dokująca USB-C z wbudowaną klawiaturą Unitek",unknown,[] -61,"HS3 BOFH","cow-work","['cow-work', 'garage', 'events', 'bofh']" -493,"Wkrętarka Niteo Tools","lab",['lab'] -494,"Quad Power Supply Cobrabid KB-60-01","audiolab",['audiolab'] -495,"Lenco PA-45 Portable Sound System with Bluetooth","audiolab",['audiolab'] -496,"Głośnik gitarowy DIY","audiolab",['audiolab'] -498,"Wiertarka udarowa | Bosch Professional GSB 16 RE","lab",['lab'] -497,"Drukarka DYMO Omega S0717930","lab",['lab'] -499,"Pudło ""wiercimy, wkręcamy i różne inne""","lab",['lab'] -500,"Pudło z chemią","lab",['lab'] -503,"Lutownica TS 80","lab",['lab'] -507,"ZD-939L stacja na gorące powietrze HOT-AIR","lab",['lab'] -513,"Urządzenie do wywoływania klisz polimerowych KENT Belichtungsgerät BG 250","lab",['lab'] -501,"Switch Planet FSD-803","audiolab",['audiolab'] -502,"Switch ES-3208P","audiolab",['audiolab'] -504,"Access Point TP-Link","audiolab",['audiolab'] -505,"Mikrofon T-Bone SC-300","audiolab",['audiolab'] -506,"Uchwyty biurkowe do mikrofonu/kamery","audiolab",['audiolab'] -508,"Bongosy","audiolab",['audiolab'] -509,"Dalekopis Lorenz LO133 Automatik","audiolab",['audiolab'] -515,"Zegar mA","lab",['lab'] -510,"Soundbar Dell AX510","audiolab",['audiolab'] -511,"Głośniki komputerowe Creative Inspire T3100","audiolab",['audiolab'] -516,"Głośnik CUBE","lab",['lab'] -512,"Pegasus & Co","audiolab",['audiolab'] -517,"Rozlutownica","lab",['lab'] -518,"Wałek giętki do wiertarki Dremel","lab",['lab'] -520,"Uchwyt do telewizora / monitora","cow-work",['cow-work'] -521,"Terminal MOTOROLA MC9062 (1 szt) i MC9060 (3 szt)","cow-work",['cow-work'] -522,"HUB 10Mb Hewlett Packard J3188A","cow-work",['cow-work'] -489,"Aparat fotograficzny Agat 18K","audiolab",['audiolab'] -488,"Aparat fotograficzny Nikon Coolpix L26","audiolab",['audiolab'] -487,"Aparat fotograficzny Hitachi HDC-761E","audiolab",['audiolab'] -486,"Aparat fotograficzny Konica Minolta","audiolab",['audiolab'] -485,"Odtwarzacz przenośny Philips","audiolab",['audiolab'] -484,"Komputer AiO POS CHD8700","audiolab",['audiolab'] -483,"Tuner Technics ST-600L","audiolab",['audiolab'] -491,"Odkurzacz Zelmer","lab",['lab'] -492,"Poziomica 1,50m","lab",['lab'] -455,"Wzmacniacz gitarowy Peavey Rage 258","audiolab",['audiolab'] -458,"Słuchawki Creative Aurvana Live!","audiolab",['audiolab'] -459,"Słuchawki Sennheiser HD25","audiolab",['audiolab'] -460,"Mikrofon Grundig GDM 312","audiolab",['audiolab'] -461,"Looper Ditto TC Electronic","audiolab",['audiolab'] -462,"Mikser Behringer MX400 Micromix","audiolab",['audiolab'] -463,"Korg Volca Keys","audiolab",['audiolab'] -464,"Korg Volca Sample","audiolab",['audiolab'] -465,"Korg Volca Mix","audiolab",['audiolab'] -466,"Korg Volca Bass","audiolab",['audiolab'] -467,"Korg Volca Modular","audiolab",['audiolab'] -468,"Yamaha DD-10 Drum Machine","audiolab",['audiolab'] -477,"Wzmacniacz zintegrowany Technics SU-810","audiolab",['audiolab'] -470,"Mikrofon Rode NT1-A","audiolab",['audiolab'] -473,"Obudowa komputerowa Chieftec Tower of BBL (but SMOL)","audiolab",['audiolab'] -447,"Aerograf PS-22 Verke","lab",['lab'] -475,"Głośniki LG CMS4340F","audiolab",['audiolab'] -474,"Wzmacniacz DIY 12V DC","audiolab",['audiolab'] -472,"Obudowa komputerowa Chieftec Tower of BBL","audiolab",['audiolab'] -471,"Głośniki DIY d33p w00f","audiolab",['audiolab'] -469,"A8 Wireless Sound Transmitter/Receiver","audiolab",['audiolab'] -453,"Klawiatury laptopowe","cow-work",['cow-work'] -452,"Klawiatury","cow-work",['cow-work'] -417,"Kable Audio Jack-Jack Mono","audiolab",['audiolab'] -449,"Omnifixo","cow-work","['cow-work', 'lab']" -448,"Joystick Thrustmaster T.16000M","cow-work",['cow-work'] -206,"Club* Mate","cow-work",['cow-work'] -450,"Lutownica T12 + groty","cow-work","['cow-work', 'lab']" -441,"Podnośnik samochodowe 2,5 ton","garage","['garage', 'tools']" -443,"Odciąg trocin/wiórów Cormak","garage",['garage'] -439,"Mikro regały. W70xD50xH55","garage",['garage'] -405,"Home Automation Switches","cow-work","['cow-work', 'lab', 'server-room']" -431,"Audio Mixer XENYX 302USB","cow-work",['cow-work'] -430,"Głośniki Loewe L82 A","audiolab",['audiolab'] -429,"Komputer Sun Ultra 45 Workstation 500s XVR2500 ULTRAsparc IIIi","audiolab",['audiolab'] -428,"Hodowla gryzoni (myszki et al.)","cow-work",['cow-work'] -426,"Karton ""Drukarka paragonowa + etykietki""","cow-work",['cow-work'] -415,"Multimetr, oscyloskop, generator sygnałów JT-OMS01","lab",['lab'] -375,"Termostaty","cow-work","['cow-work', 'lab', 'audiolab', 'server-room']" -432,"Rode Wireless GO II",unknown,[] -435,"Capture Card/Passthrough (black)",unknown,[] -434,"Capture Card (gray)",unknown,[] -438,"Rode Lav Mic",unknown,[] -437,"MACROSILICON usb extscreen",unknown,[] -436,"HDMI Extender",unknown,[] -433,"1->4 HDMI Splitter",unknown,[] -149,"LEDon Pink pussy","cow-work",['cow-work'] -151,"LEDon Bulb","cow-work",['cow-work'] -148,"LEDon HS3","cow-work",['cow-work'] -147,"LEDon Classy Lady","cow-work",['cow-work'] -418,"Karton ""Artykuły higieniczne""","cow-work",['cow-work'] -419,"Karton ""Akces(er)oria lutowanie""","cow-work",['cow-work'] -421,"Karton ""HS3 Narzędzia Warsztatowe""","cow-work",['cow-work'] -422,"Karton ""Taśmy samoprzylepne""","cow-work",['cow-work'] -423,"Karton ""Przedłużacze 230V""","cow-work",['cow-work'] -424,"Rzepowisko","cow-work",['cow-work'] -427,"Głośniki Creative GigaWorks T20 MultiMedia Speaker 28W MF1545","audiolab",['audiolab'] -425,"Repeater Zigbee Cow-work","cow-work",['cow-work'] -420,"Karton ""Bags""","cow-work",['cow-work'] -208,"Komputer Nixdorf XT ""All-in-One Portable""","cow-work",['cow-work'] -47,"Cricut Maker 3 ploter tnący","lab","['lab', 'tools']" -411,"Stacja W.E.R 852D+ do prac z smd","lab",['lab'] -416,"Switch zarządzalny MikroTik CRS309-1G-8S+IN 1x1GbE 8x10GbE SFP+ RS232 PoE","server-room",['server-room'] -413,"Zasilacz regulowany","lab",['lab'] -412,"Stacja lutownicza 937D","lab",['lab'] -410,"Stacja lutownicza LF-1660SD","lab",['lab'] -409,"Stacja do rozlutowywania DS-915","lab",['lab'] -197,"Sprzęt komp laptop Oden-dono","cow-work",['cow-work'] -189,"Sprzęt komp laptop Udon-san","cow-work",['cow-work'] -200,"Sprzęt komp laptop Bogumił","cow-work",['cow-work'] -202,"Sprzęt komp laptop Amilo","cow-work",['cow-work'] -193,"Sprzęt komp laptop Victoria","cow-work",['cow-work'] -188,"Sprzęt komp laptop mały Jaś","cow-work",['cow-work'] -199,"Sprzęt komp laptop Robin","cow-work",['cow-work'] -407,"Mikser audio Phonic MM2005","cow-work","['cow-work', 'audiolab']" -401,"Telewizor LG 37LK450-ZH","cow-work",['cow-work'] -404,"Kamera USB Savio CAK-02","cow-work",['cow-work'] -397,"Telewizor NEC E658","cow-work",['cow-work'] -406,"Klawiatura sterująca MIDI/USB AKAI MPK 61","cow-work","['cow-work', 'audiolab']" -398,"Telewizor Samsung LE37C530","cow-work",['cow-work'] -403,"Domofon Hikvision","cow-work",['cow-work'] -400,"Chromecast 2 NC2-6A5","cow-work",['cow-work'] -399,"Klawiatura MIDI Arturia Keystep","cow-work","['cow-work', 'audiolab']" -395,"Przyssawka do powierzchni płaskich","lab",['lab'] -394,"Rozlutownica bez regulacji temperatury","lab",['lab'] -393,"Lutownica Solomon","lab",['lab'] -392,"Myjka Ultradźwiękowa","lab",['lab'] -391,"Kamera statyw zestaw do pracy z płytkami PCB","lab",['lab'] -390,"Wyciąg stanowiska do lutowania","lab",['lab'] -384,"Pojemnik FOTO","cow-work",['cow-work'] -389,"Karton z częściami SMD","lab",['lab'] -387,"Klucze płaskooczkowe","lab",['lab'] -386,"Suwmiarka","lab",['lab'] -385,"Wiertarka Cemi statyw imadło","lab",['lab'] -383,"Obudowa robota sprzątającego","lab",['lab'] -382,"Drukarka 3D Photon żywiczna","lab",['lab'] -381,"Wiertarka statyw Dremel","lab",['lab'] -354,"Czujnik temperatury i wilgotności","lab",['lab'] -374,"Hot Plate","lab",['lab'] -379,"Drukarka 3D Creality K1MAX","lab",['lab'] -257,"Gra L game","cow-work",['cow-work'] -372,"Skrzynia skarbów","lab",['lab'] -378,"Nitownica do nitonakrętek","lab",['lab'] -380,"Mikroskop Eduko","lab",['lab'] -356,"Karton ""termostaty""","cow-work",['cow-work'] -358,"Karton ""wSchody""","cow-work",['cow-work'] -359,"Karton ""materiały plastyczne""","cow-work",['cow-work'] -360,"Pojemnik ""złącza, taśmy, słupki""","lab",['lab'] -361,"Karton Zigbee","cow-work",['cow-work'] -362,"Karton ""electro""","cow-work",['cow-work'] -363,"Instalacja Lasy Oliwskie","cow-work",['cow-work'] -371,"Uchwyt do płytek PCB","lab",['lab'] -364,"Karton Led String Light","cow-work",['cow-work'] -368,"Zgrzewarka do ogniw","lab",['lab'] -369,"Lutownica gazowa","lab",['lab'] -373,"OPSIS","lab",['lab'] -367,"Przejściówki USB-C => B, micro B, mini B, micro B 3, Lightning","cow-work",['cow-work'] -365,"Karton ""USB""","cow-work",['cow-work'] -366,"Karton ""Polish C Power""","cow-work",['cow-work'] -355,"Zasilacz regulowany USB-C Power Delivery Zasilacz 100W 5V/9V/12V/15V/20V","cow-work",['cow-work'] -351,"Przejściówki USB-C => Power Jack","cow-work",['cow-work'] -353,"Przejściówka Power Jack => USB-C","cow-work",['cow-work'] -350,"Body Fat Scale","lab",['lab'] -349,"DVD Video ""Monty Python: A teraz coś z zupełnie innej beczki""","cow-work",['cow-work'] -348,"14 in 1 Educational Solar Robot","lab",['lab'] -347,"Gra wideo ""PS3 Ridge Racer 7""","cow-work","['cow-work', 'video-game']" -346,"Cyberdeck Ijona","cow-work",['cow-work'] -345,"Gra wideo ""PS3 Uncharted: Drake's Fortune DE""","cow-work","['cow-work', 'video-game']" -344,"Szafka ze sprzętem telekomunikacyjnym","cow-work",['cow-work'] -340,"Kartón z wkrętami, kołkami i pudelkami","lab",['lab'] -343,"Gra wideo ""PS3 Colin McRae: Dirt 2""","cow-work","['cow-work', 'video-game']" -341,"Gra wideo ""PS3 Ratchet & Clank Quest for Booty""","cow-work","['cow-work', 'video-game']" -342,"Odtwarzacz Linn Sekrit DS-I + kolumny","cow-work",['cow-work'] -339,"Gra wideo ""Need for Speed: Most Wanted""","cow-work","['cow-work', 'video-game']" -338,"Gra wideo ""Commandos 3: Kierunek Berlin""","cow-work","['cow-work', 'video-game']" -337,"Gra wideo ""Heroes of Might and Magic V: Kuźnia Przeznaczenia""","cow-work","['cow-work', 'video-game']" -336,"Puzzle Ptaki 500 - Politechnika Gdańska","cow-work","['cow-work', 'boardgame']" -335,"Wiertarka PSR 1440 LI-2 + AL 1880 CV BOSCH","lab","['lab', 'tools']" -334,"5-Port Fast Ethernet Switch Edimax 10/100Mbps","cow-work",['cow-work'] -333,"Karton ""ZASILACZE LAPTOP""","cow-work",['cow-work'] -332,"Karton ""URZĄDZENIA SIECIOWE LAN""","cow-work",['cow-work'] -331,"Karton ""VR""","cow-work",['cow-work'] -330,"Karton ""RADIO""","cow-work",['cow-work'] -326,"Lampa z lupą","lab",['lab'] -328,"Lampa z lupą niesprawna","lab",['lab'] -329,"Karton ""RÓŻNE MAŁE ZASILACZE""","cow-work",['cow-work'] -327,"Karton ""PRZEWODY ZASILAJACE""","cow-work",['cow-work'] -325,"Karton ""PRZEWODY <1MM2""","cow-work",['cow-work'] -324,"Karton ""AUDIO PRO""","cow-work",['cow-work'] -323,"Karton ""VIDEO""","cow-work",['cow-work'] -322,"Karton ""AUDIO JABRA""","cow-work",['cow-work'] -321,"Karton ""HDMI""","cow-work",['cow-work'] -320,"Karton ""RETRO AV SCART ET AL""","cow-work",['cow-work'] -319,"Karton ""LAN przewody""","cow-work",['cow-work'] -318,"Gra zręcznościowa “Wooden Blocks""","cow-work","['cow-work', 'boardgame']" -316,"Wavetek Universal Antenna Coupler WWG MMS-4107S","cow-work",['cow-work'] -287,"Gra wideo “PC Warcraft II: Tides of Darkness”","cow-work","['cow-work', 'video-game']" -289,"Gra wideo ""PC Fallout 1""","cow-work","['cow-work', 'video-game']" -297,"Naklejki ""własność prywatna""","cow-work",['cow-work'] -299,"Gra Koci Cymbergaj","cow-work",['cow-work'] -300,"Multifunction Printer Canon MG3150","cow-work",['cow-work'] -302,"Skaner Plustek OpticPro ST24","cow-work",['cow-work'] -305,"Voltage, Distortion, and Noise Meter VN-1687 Unitra Elmasz","cow-work",['cow-work'] -306,"WANPTEK Programmable DC Power Supply","cow-work",['cow-work'] -307,"Oscyloskop Hantek 6022BE","cow-work",['cow-work'] -309,"Type SMG-1 Stereo Generator Radiometer Copenhagen","cow-work",['cow-work'] -313,"Karton ""Słuchawki""","cow-work",['cow-work'] -301,"Karton ""ARTYKUŁY BIUROWE""","cow-work",['cow-work'] -314,"PINTEK 20MHz oscilloscope PS-200","cow-work",['cow-work'] -315,"PAL-B System?","cow-work",['cow-work'] -296,"HUBy USB-C","cow-work",['cow-work'] -144,"Venus","cow-work",['cow-work'] -52,"Evil Submarine","cow-work","['cow-work', 'projects']" -295,"Dmuchawa do elektroniki Appio","cow-work",['cow-work'] -288,"Gra wideo ""Warcraft II: Battle.net Edition""","cow-work","['cow-work', 'video-game']" -290,"Projektor Barco F22 SX+ Ultra Wide VizSim","cow-work",['cow-work'] -284,"Robotarm SVI-2000 QuickShot","cow-work",['cow-work'] -282,"Komputer ZX Spectrum +2","cow-work",['cow-work'] -281,"Gra wideo “PC Mortyr 2093-1944”","cow-work","['cow-work', 'video-game']" -280,"Komputer Commodore C=64","cow-work",['cow-work'] -278,"Philips PM5415TX color TV Pattern Generator","cow-work",['cow-work'] -277,"Joystick QuickShot II Turbo","cow-work",['cow-work'] -276,"Gra wideo “PC Dragon Dice”","cow-work","['cow-work', 'video-game']" -275,"Joystick Quickshot","cow-work",['cow-work'] -274,"Komputer Spectravideo SVI–738","cow-work",['cow-work'] -272,"Gra wideo “PC Man Of War”","cow-work","['cow-work', 'video-game']" -271,"Gra wideo “PC Warcraft: Orcs & Humans”","cow-work","['cow-work', 'video-game']" -270,"Gra wideo “Nowy Teenagent”","cow-work","['cow-work', 'video-game']" -269,"Gra wideo ""PC Requiem: Avenging Angel""","cow-work","['cow-work', 'video-game']" -268,"Gra wideo “PC CLASH”","cow-work","['cow-work', 'video-game']" -267,"Gra wideo ""PC Baldur’s Gate: Opowieści z Wybrzeża Mieczy""","cow-work","['cow-work', 'video-game']" -266,"Gra wideo “PC Fallout 2 - A Post Nuclear Role Playing Game”","cow-work","['cow-work', 'video-game']" -265,"Gra wideo “PC Might & Magic: Heroes VI - Pirates of the Savage Sea”","cow-work","['cow-work', 'video-game']" -264,"Gra wideo “PC Konung: Legenda Północy”","cow-work","['cow-work', 'video-game']" -263,"Gra wideo “PC End of Twilight: Zaginiona tarcza wikinga”","cow-work","['cow-work', 'video-game']" -262,"Gra wideo “Alien Nations”","cow-work","['cow-work', 'video-game']" -261,"Gra wideo “PC Tony Hawk's Underground 2”","cow-work","['cow-work', 'video-game']" -259,"Gra wideo ""PC Kroniki czarnego księżyca""","cow-work","['cow-work', 'video-game']" -260,"Gra wideo ""PC ony Hawk's Pro Skater 3""","cow-work","['cow-work', 'video-game']" -256,"Gra wideo “PC Full Spectrum Warrior”","cow-work","['cow-work', 'video-game']" -258,"Gra wideo ""PC Invictus: W Cieniu Olimpu""","cow-work","['cow-work', 'video-game']" -236,"Gra planszowa ""Carcassonne. Gra o zamkach, miastach i rycerzach.”","cow-work","['cow-work', 'boardgame']" -237,"Gra zręcznościowa ""Wieża""","cow-work","['cow-work', 'boardgame']" -238,"Gra planszowa ""Postaw na klocka""","cow-work","['cow-work', 'boardgame']" -239,"Gra planszowa “Tajniacy”","cow-work","['cow-work', 'boardgame']" -240,"Gra planszowa “Story Cubes: Podróże”","cow-work","['cow-work', 'boardgame']" -253,"Gra wideo ""PS2 Charlie and the Chocolate Factory""","cow-work","['cow-work', 'video-game']" -254,"Gra wideo “ The Chronicles of Narnia: The Lion, The Witch and The Wardrobe”","cow-work","['cow-work', 'video-game']" -255,"Gra wideo “PS2 Conflict: Vietnam”","cow-work","['cow-work', 'video-game']" -248,"Komputer Amstrad 128k Colour Personal Computer","cow-work",['cow-work'] -249,"Zasilacz laboratoryjny Zhaoxin","cow-work","['cow-work', 'tools']" -250,"Gra karciana ""Monty Python and the Holy Grail CCG Booster Pack""","cow-work","['cow-work', 'boardgame']" -252,"Konsola do gier Doom.txt","cow-work",['cow-work'] -251,"Konsola do gier DoomGirl","cow-work","['cow-work', 'video-game']" -212,"SUN Keyboard & Mouse Collection","cow-work",['cow-work'] -243,"Gra karciana ""List Miłosny""","cow-work","['cow-work', 'boardgame']" -242,"Dodatek do gry “ KeyForge: Zew Archontów - Talia Archonta”","cow-work","['cow-work', 'boardgame']" -241,"Gra planszowa “Developer Dilemmas”","cow-work","['cow-work', 'boardgame']" -244,"Osciloscope OS-352 ZUE Unitem","cow-work",['cow-work'] -245,"Dodatek do gry “KeyForge: Czas Wstąpienia - Talia Archonta”","cow-work","['cow-work', 'boardgame']" -246,"Gra planszowa “Dobble: collector”","cow-work","['cow-work', 'boardgame']" -247,"Gra planszowa “Cytadela”","cow-work","['cow-work', 'boardgame']" -91,"Drukarka 3D Creality Ender 3","lab","['lab', 'tools', '3d-print']" -139,"Drukarka Brother PT-E550WSP","lab",['lab'] -222,"Gra planszowa “Spiskowcy""","cow-work","['cow-work', 'boardgame']" -232,"Gra planszowa “Takie Życie - Ciekawostki""","cow-work","['cow-work', 'boardgame']" -234,"Gra planszowa ""Załoga: Wyprawa w głębiny""","cow-work","['cow-work', 'boardgame']" -235,"Gra planszowa ""Decrypto""","cow-work","['cow-work', 'boardgame']" -233,"Blinkenkrate","cow-work","['cow-work', 'projects']" -231,"Mecanorma 9,99999MHz","cow-work",['cow-work'] -230,"SECAM/PAL TV Pattern Generator Type K944","cow-work",['cow-work'] -229,"TRIO 15MHz Oscilloscope CS-1560A","cow-work",['cow-work'] -228,"Monitor Trinitron","cow-work",['cow-work'] -227,"Oscyloskop ST-315A II KABID Radiotechnika","cow-work",['cow-work'] -226,"Grundig AM/FM Generator AS4","cow-work",['cow-work'] -225,"Mera tronik Digital Voltmeter Type V530","cow-work",['cow-work'] -224,"Hewlett Packard 8640A Signal Generator","cow-work",['cow-work'] -223,"Sprzęt komp all-in-one krągły iMac *inander","cow-work",['cow-work'] -221,"Monitor Amstrad CTM644","cow-work",['cow-work'] -220,"UNITRA Unima Digital Multimeter 1331","cow-work",['cow-work'] -219,"Leader LVS-5851 A PAL Vectorscope","cow-work",['cow-work'] -218,"Zopan Signal Generator KZ 1623","cow-work",['cow-work'] -217,"UNITRA Elmasz Miernik nierównomierności ND-1481","cow-work",['cow-work'] -216,"SUN CD-ROM Caddy Loaded","cow-work",['cow-work'] -215,"Xbox 360 Plain","cow-work",['cow-work'] -214,"Xbox 360 Chrome","cow-work",['cow-work'] -213,"Xbox 360 Toothless","cow-work",['cow-work'] -211,"SUN Ultra 5 Bottom","cow-work",['cow-work'] -210,"SUN Ultra 5 Top","cow-work",['cow-work'] -209,"SUN Sparkstation 20","cow-work",['cow-work'] -203,"Multimetr TL-4",unknown,[] -156,"Drabinka","cow-work",['cow-work'] -155,"Flipchart","cow-work",['cow-work'] -166,"Gra planszowa Oriflamme","cow-work","['cow-work', 'boardgame']" -168,"Gra planszowa ""To ja go tnę""","cow-work","['cow-work', 'boardgame']" -152,"Gra planszowa Dreadful Circus","cow-work","['cow-work', 'boardgame']" -160,"Gra planszowa ""Mage Knight Dugeons""","cow-work","['cow-work', 'boardgame']" -169,"Gra planszowa Mix Tura","cow-work","['cow-work', 'boardgame']" -171,"Gra karciana UNO","cow-work",['cow-work'] -140,"Kamizelka projektu 'Człowiek'","cow-work",['cow-work'] -167,"Sprzęt komp Monitor Samson","cow-work",['cow-work'] -165,"Sprzęt komp Monitor mały Dellton","cow-work",['cow-work'] -163,"Sprzęt komp all-in-one krągły iMaciej","cow-work",['cow-work'] -162,"Sprzęt komp monitor Dellton","cow-work",['cow-work'] -161,"Sprzęt komp All-in-one Asuseł","cow-work",['cow-work'] -159,"Sprzęt komp monitor Optimus Prime","cow-work",['cow-work'] -158,"Sprzęt komp monitor Hehe Prince","cow-work",['cow-work'] -157,"Sprzęt komp All-in-one Lenovaldek","cow-work",['cow-work'] -154,"Sprzęt komp All-in-one Bazzite","cow-work",['cow-work'] -143,"Von Count","cow-work",['cow-work'] -142,"Kaktus","cow-work",['cow-work'] -141,"Tramwajomat","cow-work",['cow-work'] -170,"Sprzęt komp Desktop FrankenSUN","cow-work",['cow-work'] -172,"Sprzęt komp Desktop Bandzior","cow-work",['cow-work'] -173,"Sprzęt komp Desktop GOOD BOY","cow-work",['cow-work'] -174,"Sprzęt komp Desktop Unbreak My Heart","cow-work",['cow-work'] -175,"Sprzęt komp Desktop Mucha w Zupie","cow-work",['cow-work'] -178,"Sprzęt komp Desktop Roxanne","cow-work",['cow-work'] -180,"Sprzęt komp Desktop Wronisław","cow-work",['cow-work'] -194,"Sprzęt komp laptop Wonder Boy","cow-work",['cow-work'] -204,"Sprzęt komp laptop Lego Dell","cow-work",['cow-work'] -181,"Klimatyzator","cow-work",['cow-work'] -205,"Sprzęt komp laptop HackLab-0x01","cow-work",['cow-work'] -185,"Dekadowy Generator RC PW-9","cow-work",['cow-work'] -186,"Sprzęt komp laptop Vojtěch","cow-work",['cow-work'] -187,"PMZ-12 Automatic Distortion Meter","cow-work",['cow-work'] -190,"Dekadowy Generator RC PW-9 NATIONAL","cow-work",['cow-work'] -191,"Dekadowy Generator RC PW-9 TK2","cow-work",['cow-work'] -192,"Generator RC PO-20","cow-work",['cow-work'] -195,"Miernik napięć, zniekształceń i szumów VN-1064/A","cow-work",['cow-work'] -184,"Sprzęt komp All-in-one Przyczajony nieobecny Bazyl","cow-work",['cow-work'] -183,"Sprzęt komp All-in-one Przyczajony Bazyl Lewy","cow-work",['cow-work'] -182,"Sprzęt komp All-in-one Przyczajony Bazyl pierwszy","cow-work",['cow-work'] -108,"PC Engines APU2 Router Box","cow-work","['cow-work', 'networking']" -150,"LEDon Schrödinger's pussy","cow-work",['cow-work'] -164,"Sprzęt komp Monitor Hapeusz",unknown,[] -153,"LEDon Duck","cow-work",['cow-work'] -145,"Prince Charming","cow-work",['cow-work'] -93,"King Bob","cow-work",['cow-work'] -90,"Chciejlista",unknown,[] -85,"Komu powinien służyć Spejs",unknown,[] -84,"Budżet",unknown,[] -83,"Hackerspace Dragon Dreaming",unknown,[] -82,"Biblioteka","cow-work","['cow-work', 'books']" -66,"Apteczki","cow-work","['cow-work', 'garage', 'bhp']" -44,"Brayton Power","garage","['garage', 'projects']" -50,"Infinity mirror (duże)","garage","['garage', 'projects']" -41,"Wiertarka PSB 500 RE BOSCH","garage","['garage', 'tools']" -46,"What the Duck","cow-work","['cow-work', 'wled']" +id,title,place,tags +45,"Jak stworzyć nowy wpis do bazy zasobów Hackerspace Trójmiasto?",unknown,[] +20,"O kategorii: Baza Wiedzy Hackerspace'u",unknown,[] +747,"Gra handheld ""Crazy Brick""","cow-work","['cow-work', 'video-game']" +745,"Statyw na aparat",unknown,[] +735,"STD17NF03L",unknown,[] +734,"Szuflada z procesorami STM32","lab",['lab'] +732,"Eksplodujące pudełko HS3","cow-work","['cow-work', 'projects']" +731,"STM32F723",unknown,[] +730,"NUCLEO G431RB",unknown,[] +729,"Nucleo Expansion Board Led Driver",unknown,[] +728,"Nucleo Expansion Board MultiSensor",unknown,[] +285,"Konsola do gier Sony PlayStation 2 Slim + kontroler Namco GunCon","cow-work",['cow-work'] +480,"Gitara elektryczna Blond TE-1 MN BB","audiolab",['audiolab'] +481,"Gitara elektryczna Blond STR-1H MN SFG","audiolab",['audiolab'] +479,"Guitalele Ever Play GT-WBK","audiolab",['audiolab'] +456,"Wzmacniacz gitarowy Roland Micro Cube","audiolab",['audiolab'] +530,"Discman SONY","audiolab",['audiolab'] +531,"Streamer LTO-4 HP M8609A","server-room",['server-room'] +376,"Drukarka 3D HEVO (Hypercube Evolution","lab","['lab', '3d-print']" +699,"Gra Blood Bowl z przyległościami","cow-work","['cow-work', 'audiolab', 'boardgame', 'sticker-needed']" +720,"Płytki ewaluacyjne STEVAL-VP318L1F +?","lab",['lab'] +702,"Wózek na tacki projektowe","lab",['lab'] +719,"Pudełko projektowe ""Fala za Falą""","lab","['lab', 'sticker-needed']" +703,"Tacki projektowe","lab","['lab', 'sticker-needed']" +414,"Tester kabli RJ45, RJ11/12, BNC Lanberg","lab",['lab'] +718,"Zestaw nitonakrętek alu+stal G02910","lab",['lab'] +717,"Gniazdo DC 5,5/2,5mm do druku - poziome","lab","['lab', 'electronics']" +716,"Konektor FPC 8-pin","lab","['lab', 'electronics']" +715,"Przełącznik DIP switch 2 tory","lab","['lab', 'electronics']" +714,"Przełącznik DIP switch 4 tory","lab","['lab', 'electronics']" +713,"Diody LED czerwone, błękitne","lab","['lab', 'electronics']" +712,"Złącze śrubowe ARK 3-pinowe","lab","['lab', 'electronics']" +711,"Złącze śrubowe ARK 2-pinowe","lab","['lab', 'electronics']" +710,"Złącze śrubowe ARK 4-pinowe","lab","['lab', 'electronics']" +709,"ESP-32","lab","['lab', 'electronics']" +708,"Origami LED Matrix","server-room","['projects', 'server-room']" +704,"Tranzystor PNP bipolarny 50V","lab","['lab', 'electronics']" +705,"Tranzystor NPN bipolarny 45V","lab","['lab', 'electronics']" +707,"Przycisk monostabilny - tact switch","lab","['lab', 'electronics']" +706,"Tranzystor T482 BVBR11","lab","['lab', 'electronics']" +561,"Antena Dipol na 30m","lab",['lab'] +701,"Celestia - edukacyjna ściana nocnego nieba","server-room","['projects', 'server-room']" +538,"Interfejs audio Line6 GX","audiolab",['audiolab'] +388,"Zasilacz 16A, 12V dc","lab",['lab'] +700,"Drukarka 3D Creality Ender do samodzielnego złożenia","lab","['lab', 'sticker-needed']" +377,"Drukarka 3D “Elegoo Neptune 4 Pro”","lab","['lab', '3d-print']" +514,"Pistolet do kleju na gorąco","lab",['lab'] +698,"Disco betoniarka","garage","['garage', 'projects', 'sticker-needed']" +179,"Sprzęt komp Desktop Dr Robotomy","cow-work",['cow-work'] +585,"Ścianka narzędziowa","lab",['lab'] +584,"Stojak ze śrubokrętami","lab",['lab'] +583,"Pudełko z zapalniczkami","lab",['lab'] +582,"Konwerter ATC-1000 firmy F&F","lab",['lab'] +581,"Pojemnik z konektorami","lab",['lab'] +580,"Pudło - rurki / koszulki termokurczliwe, różne rodzaje","lab",['lab'] +579,"Uchwyt na kolbę gorącego powietrza (hot-air) z magnetycznym stolikiem naprawczym W.E.R 628","lab",['lab'] +578,"Myjka ultradźwiękowa 2","lab",['lab'] +577,"Żywiczna drukarka 3D Elegoo Mars 2 Pro","lab","['lab', '3d-print']" +576,"Pudło z filamentami kolorowymi krótkimi","lab","['lab', '3d-print']" +529,"Projektor Optoma","cow-work",['cow-work'] +527,"Stacja dokująca USB-C + ładowarka bezprzewodowa","cow-work",['cow-work'] +575,"Pudło z materiałami do drukarek 3D","lab",['lab'] +574,"Laminator biurowy Leitz iLAM Office Pro A3","lab",['lab'] +573,"Deska do krojenia, bambus, 53x46 cm","lab",['lab'] +572,"Farba Akrylowa Greenish","lab",['lab'] +571,"Smartphone Nexus LG","lab",['lab'] +570,"Smartphone Google","lab",['lab'] +569,"Smartphone Samsung","lab",['lab'] +568,"Redmi smartphone","lab",['lab'] +567,"iPhone","lab",['lab'] +566,"Materiały do plotera (winyl i inne) + krepa","lab",['lab'] +565,"Antena bazowa HamRadioShop 10 cm","lab",['lab'] +564,"LORA / Meshtastic","lab",['lab'] +563,"Przełącznik antenowy na 4 anteny KF ze sterownikiem","lab",['lab'] +562,"DREMEL 3000","lab",['lab'] +560,"Przełącznik antenowy z kontrolerem",unknown,[] +304,"Monitor LG StudioWorks 560N","cow-work",['cow-work'] +554,"ArcaderOS - Śmieciowy Arcade Charytatywny dla każdego","cow-work",['cow-work'] +283,"Telewizor Funai","cow-work",['cow-work'] +478,"Gitara basowa Squier Precision Bass","audiolab",['audiolab'] +533,"Access Point Mikrotik cAP ac",unknown,[] +546,"Kwadraty ze sklejki w drewnianych pudełkach",unknown,[] +545,"LEGO piedestał z figurkami i jednorożcem","cow-work",['cow-work'] +541,"HAM QRP Szpej",unknown,[] +543,"PKL, RF7, kable koncentryczne KF",unknown,[] +542,"Antena Uda-Yagi 2m i 70 cm",unknown,[] +370,"Infiniti mirror - części, pudło","lab",['lab'] +540,"Icom 706-mk2",unknown,[] +537,"Płyta główna GIGABYTE GA-790XT-USB3","cow-work",['cow-work'] +536,"Płyta główna ECS L7VMM3","cow-work",['cow-work'] +535,"Płyta główna EPoX EP-8K9A7I","cow-work",['cow-work'] +92,"Drukarka 3D Creality K1 Max","lab","['lab', 'tools', '3d-print']" +454,"Perkusja Alesis DM8","cow-work","['cow-work', 'audiolab']" +273,"Drukarka Samsung ML-3710ND","cow-work",['cow-work'] +476,"Wieża TECHNICS EH550 - kolumny głośnikowe","audiolab",['audiolab'] +286,"Magnetowid VHS Philips VR 471","cow-work",['cow-work'] +482,"Magnetofon kasetowy Technics RS-B765","audiolab",['audiolab'] +317,"Sound Technology 1700B Distortion Measurement System","cow-work",['cow-work'] +311,"Hung Chang Oscilloscope 5504 40MHz","cow-work",['cow-work'] +279,"Komputer Apple Macintosh SE","cow-work",['cow-work'] +292,"Wieża TECHNICS EH550 - Stereo sound processor SH-EH550","cow-work",['cow-work'] +293,"Wieża TECHNICS EH550 - Stereo cassette deck RS-EH750","cow-work",['cow-work'] +294,"Wieża TECHNICS EH550 - Compact disc player SL-EH750","cow-work",['cow-work'] +291,"Wieża TECHNICS EH550 - Stereo tuner amplifier SA-EH550","cow-work",['cow-work'] +532,"Telefon komórkowy Compas CTKE08",unknown,[] +357,"Radio samochodowe Alpine","audiolab",['audiolab'] +519,"Statyw Keyboard","cow-work","['cow-work', 'audiolab']" +352,"Przejściówki USB-A => Power Jack","cow-work",['cow-work'] +451,"Maty lutownicze","cow-work","['cow-work', 'lab']" +490,"Radiomagnetofon przenośny Panasonic RQ-V77","audiolab",['audiolab'] +312,"Szufladka ""Zestawy adapterów końcówek do zasilacza laptopa"" / końcówki do zasilania","cow-work",['cow-work'] +526,"Monitory",unknown,[] +528,"Stacja dokująca USB-C z wbudowaną klawiaturą Unitek",unknown,[] +61,"HS3 BOFH","cow-work","['cow-work', 'garage', 'events', 'bofh']" +493,"Wkrętarka Niteo Tools","lab",['lab'] +494,"Quad Power Supply Cobrabid KB-60-01","audiolab",['audiolab'] +495,"Lenco PA-45 Portable Sound System with Bluetooth","audiolab",['audiolab'] +496,"Głośnik gitarowy DIY","audiolab",['audiolab'] +498,"Wiertarka udarowa | Bosch Professional GSB 16 RE","lab",['lab'] +497,"Drukarka DYMO Omega S0717930","lab",['lab'] +499,"Pudło ""wiercimy, wkręcamy i różne inne""","lab",['lab'] +500,"Pudło z chemią","lab",['lab'] +503,"Lutownica TS 80","lab",['lab'] +507,"ZD-939L stacja na gorące powietrze HOT-AIR","lab",['lab'] +513,"Urządzenie do wywoływania klisz polimerowych KENT Belichtungsgerät BG 250","lab",['lab'] +501,"Switch Planet FSD-803","audiolab",['audiolab'] +502,"Switch ES-3208P","audiolab",['audiolab'] +504,"Access Point TP-Link","audiolab",['audiolab'] +505,"Mikrofon T-Bone SC-300","audiolab",['audiolab'] +506,"Uchwyty biurkowe do mikrofonu/kamery","audiolab",['audiolab'] +508,"Bongosy","audiolab",['audiolab'] +509,"Dalekopis Lorenz LO133 Automatik","audiolab",['audiolab'] +515,"Zegar mA","lab",['lab'] +510,"Soundbar Dell AX510","audiolab",['audiolab'] +511,"Głośniki komputerowe Creative Inspire T3100","audiolab",['audiolab'] +516,"Głośnik CUBE","lab",['lab'] +512,"Pegasus & Co","audiolab",['audiolab'] +517,"Rozlutownica","lab",['lab'] +518,"Wałek giętki do wiertarki Dremel","lab",['lab'] +520,"Uchwyt do telewizora / monitora","cow-work",['cow-work'] +521,"Terminal MOTOROLA MC9062 (1 szt) i MC9060 (3 szt)","cow-work",['cow-work'] +522,"HUB 10Mb Hewlett Packard J3188A","cow-work",['cow-work'] +489,"Aparat fotograficzny Agat 18K","audiolab",['audiolab'] +488,"Aparat fotograficzny Nikon Coolpix L26","audiolab",['audiolab'] +487,"Aparat fotograficzny Hitachi HDC-761E","audiolab",['audiolab'] +486,"Aparat fotograficzny Konica Minolta","audiolab",['audiolab'] +485,"Odtwarzacz przenośny Philips","audiolab",['audiolab'] +484,"Komputer AiO POS CHD8700","audiolab",['audiolab'] +483,"Tuner Technics ST-600L","audiolab",['audiolab'] +491,"Odkurzacz Zelmer","lab",['lab'] +492,"Poziomica 1,50m","lab",['lab'] +455,"Wzmacniacz gitarowy Peavey Rage 258","audiolab",['audiolab'] +458,"Słuchawki Creative Aurvana Live!","audiolab",['audiolab'] +459,"Słuchawki Sennheiser HD25","audiolab",['audiolab'] +460,"Mikrofon Grundig GDM 312","audiolab",['audiolab'] +461,"Looper Ditto TC Electronic","audiolab",['audiolab'] +462,"Mikser Behringer MX400 Micromix","audiolab",['audiolab'] +463,"Korg Volca Keys","audiolab",['audiolab'] +464,"Korg Volca Sample","audiolab",['audiolab'] +465,"Korg Volca Mix","audiolab",['audiolab'] +466,"Korg Volca Bass","audiolab",['audiolab'] +467,"Korg Volca Modular","audiolab",['audiolab'] +468,"Yamaha DD-10 Drum Machine","audiolab",['audiolab'] +477,"Wzmacniacz zintegrowany Technics SU-810","audiolab",['audiolab'] +470,"Mikrofon Rode NT1-A","audiolab",['audiolab'] +473,"Obudowa komputerowa Chieftec Tower of BBL (but SMOL)","audiolab",['audiolab'] +447,"Aerograf PS-22 Verke","lab",['lab'] +475,"Głośniki LG CMS4340F","audiolab",['audiolab'] +474,"Wzmacniacz DIY 12V DC","audiolab",['audiolab'] +472,"Obudowa komputerowa Chieftec Tower of BBL","audiolab",['audiolab'] +471,"Głośniki DIY d33p w00f","audiolab",['audiolab'] +469,"A8 Wireless Sound Transmitter/Receiver","audiolab",['audiolab'] +453,"Klawiatury laptopowe","cow-work",['cow-work'] +452,"Klawiatury","cow-work",['cow-work'] +417,"Kable Audio Jack-Jack Mono","audiolab",['audiolab'] +449,"Omnifixo","cow-work","['cow-work', 'lab']" +448,"Joystick Thrustmaster T.16000M","cow-work",['cow-work'] +206,"Club* Mate","cow-work",['cow-work'] +450,"Lutownica T12 + groty","cow-work","['cow-work', 'lab']" +441,"Podnośnik samochodowe 2,5 ton","garage","['garage', 'tools']" +443,"Odciąg trocin/wiórów Cormak","garage",['garage'] +439,"Mikro regały. W70xD50xH55","garage",['garage'] +405,"Home Automation Switches","cow-work","['cow-work', 'lab', 'server-room']" +431,"Audio Mixer XENYX 302USB","cow-work",['cow-work'] +430,"Głośniki Loewe L82 A","audiolab",['audiolab'] +429,"Komputer Sun Ultra 45 Workstation 500s XVR2500 ULTRAsparc IIIi","audiolab",['audiolab'] +428,"Hodowla gryzoni (myszki et al.)","cow-work",['cow-work'] +426,"Karton ""Drukarka paragonowa + etykietki""","cow-work",['cow-work'] +415,"Multimetr, oscyloskop, generator sygnałów JT-OMS01","lab",['lab'] +375,"Termostaty","cow-work","['cow-work', 'lab', 'audiolab', 'server-room']" +432,"Rode Wireless GO II",unknown,[] +435,"Capture Card/Passthrough (black)",unknown,[] +434,"Capture Card (gray)",unknown,[] +438,"Rode Lav Mic",unknown,[] +437,"MACROSILICON usb extscreen",unknown,[] +436,"HDMI Extender",unknown,[] +433,"1->4 HDMI Splitter",unknown,[] +149,"LEDon Pink pussy","cow-work",['cow-work'] +151,"LEDon Bulb","cow-work",['cow-work'] +148,"LEDon HS3","cow-work",['cow-work'] +147,"LEDon Classy Lady","cow-work",['cow-work'] +418,"Karton ""Artykuły higieniczne""","cow-work",['cow-work'] +419,"Karton ""Akces(er)oria lutowanie""","cow-work",['cow-work'] +421,"Karton ""HS3 Narzędzia Warsztatowe""","cow-work",['cow-work'] +422,"Karton ""Taśmy samoprzylepne""","cow-work",['cow-work'] +423,"Karton ""Przedłużacze 230V""","cow-work",['cow-work'] +424,"Rzepowisko","cow-work",['cow-work'] +427,"Głośniki Creative GigaWorks T20 MultiMedia Speaker 28W MF1545","audiolab",['audiolab'] +425,"Repeater Zigbee Cow-work","cow-work",['cow-work'] +420,"Karton ""Bags""","cow-work",['cow-work'] +208,"Komputer Nixdorf XT ""All-in-One Portable""","cow-work",['cow-work'] +47,"Cricut Maker 3 ploter tnący","lab","['lab', 'tools']" +411,"Stacja W.E.R 852D+ do prac z smd","lab",['lab'] +416,"Switch zarządzalny MikroTik CRS309-1G-8S+IN 1x1GbE 8x10GbE SFP+ RS232 PoE","server-room",['server-room'] +413,"Zasilacz regulowany","lab",['lab'] +412,"Stacja lutownicza 937D","lab",['lab'] +410,"Stacja lutownicza LF-1660SD","lab",['lab'] +409,"Stacja do rozlutowywania DS-915","lab",['lab'] +197,"Sprzęt komp laptop Oden-dono","cow-work",['cow-work'] +189,"Sprzęt komp laptop Udon-san","cow-work",['cow-work'] +200,"Sprzęt komp laptop Bogumił","cow-work",['cow-work'] +202,"Sprzęt komp laptop Amilo","cow-work",['cow-work'] +193,"Sprzęt komp laptop Victoria","cow-work",['cow-work'] +188,"Sprzęt komp laptop mały Jaś","cow-work",['cow-work'] +199,"Sprzęt komp laptop Robin","cow-work",['cow-work'] +407,"Mikser audio Phonic MM2005","cow-work","['cow-work', 'audiolab']" +401,"Telewizor LG 37LK450-ZH","cow-work",['cow-work'] +404,"Kamera USB Savio CAK-02","cow-work",['cow-work'] +397,"Telewizor NEC E658","cow-work",['cow-work'] +406,"Klawiatura sterująca MIDI/USB AKAI MPK 61","cow-work","['cow-work', 'audiolab']" +398,"Telewizor Samsung LE37C530","cow-work",['cow-work'] +403,"Domofon Hikvision","cow-work",['cow-work'] +400,"Chromecast 2 NC2-6A5","cow-work",['cow-work'] +399,"Klawiatura MIDI Arturia Keystep","cow-work","['cow-work', 'audiolab']" +395,"Przyssawka do powierzchni płaskich","lab",['lab'] +394,"Rozlutownica bez regulacji temperatury","lab",['lab'] +393,"Lutownica Solomon","lab",['lab'] +392,"Myjka Ultradźwiękowa","lab",['lab'] +391,"Kamera statyw zestaw do pracy z płytkami PCB","lab",['lab'] +390,"Wyciąg stanowiska do lutowania","lab",['lab'] +384,"Pojemnik FOTO","cow-work",['cow-work'] +389,"Karton z częściami SMD","lab",['lab'] +387,"Klucze płaskooczkowe","lab",['lab'] +386,"Suwmiarka","lab",['lab'] +385,"Wiertarka Cemi statyw imadło","lab",['lab'] +383,"Obudowa robota sprzątającego","lab",['lab'] +382,"Drukarka 3D Photon żywiczna","lab",['lab'] +381,"Wiertarka statyw Dremel","lab",['lab'] +354,"Czujnik temperatury i wilgotności","lab",['lab'] +374,"Hot Plate","lab",['lab'] +379,"Drukarka 3D Creality K1MAX","lab",['lab'] +257,"Gra L game","cow-work",['cow-work'] +372,"Skrzynia skarbów","lab",['lab'] +378,"Nitownica do nitonakrętek","lab",['lab'] +380,"Mikroskop Eduko","lab",['lab'] +356,"Karton ""termostaty""","cow-work",['cow-work'] +358,"Karton ""wSchody""","cow-work",['cow-work'] +359,"Karton ""materiały plastyczne""","cow-work",['cow-work'] +360,"Pojemnik ""złącza, taśmy, słupki""","lab",['lab'] +361,"Karton Zigbee","cow-work",['cow-work'] +362,"Karton ""electro""","cow-work",['cow-work'] +363,"Instalacja Lasy Oliwskie","cow-work",['cow-work'] +371,"Uchwyt do płytek PCB","lab",['lab'] +364,"Karton Led String Light","cow-work",['cow-work'] +368,"Zgrzewarka do ogniw","lab",['lab'] +369,"Lutownica gazowa","lab",['lab'] +373,"OPSIS","lab",['lab'] +367,"Przejściówki USB-C => B, micro B, mini B, micro B 3, Lightning","cow-work",['cow-work'] +365,"Karton ""USB""","cow-work",['cow-work'] +366,"Karton ""Polish C Power""","cow-work",['cow-work'] +355,"Zasilacz regulowany USB-C Power Delivery Zasilacz 100W 5V/9V/12V/15V/20V","cow-work",['cow-work'] +351,"Przejściówki USB-C => Power Jack","cow-work",['cow-work'] +353,"Przejściówka Power Jack => USB-C","cow-work",['cow-work'] +350,"Body Fat Scale","lab",['lab'] +349,"DVD Video ""Monty Python: A teraz coś z zupełnie innej beczki""","cow-work",['cow-work'] +348,"14 in 1 Educational Solar Robot","lab",['lab'] +347,"Gra wideo ""PS3 Ridge Racer 7""","cow-work","['cow-work', 'video-game']" +346,"Cyberdeck Ijona","cow-work",['cow-work'] +345,"Gra wideo ""PS3 Uncharted: Drake's Fortune DE""","cow-work","['cow-work', 'video-game']" +344,"Szafka ze sprzętem telekomunikacyjnym","cow-work",['cow-work'] +340,"Kartón z wkrętami, kołkami i pudelkami","lab",['lab'] +343,"Gra wideo ""PS3 Colin McRae: Dirt 2""","cow-work","['cow-work', 'video-game']" +341,"Gra wideo ""PS3 Ratchet & Clank Quest for Booty""","cow-work","['cow-work', 'video-game']" +342,"Odtwarzacz Linn Sekrit DS-I + kolumny","cow-work",['cow-work'] +339,"Gra wideo ""Need for Speed: Most Wanted""","cow-work","['cow-work', 'video-game']" +338,"Gra wideo ""Commandos 3: Kierunek Berlin""","cow-work","['cow-work', 'video-game']" +337,"Gra wideo ""Heroes of Might and Magic V: Kuźnia Przeznaczenia""","cow-work","['cow-work', 'video-game']" +336,"Puzzle Ptaki 500 - Politechnika Gdańska","cow-work","['cow-work', 'boardgame']" +335,"Wiertarka PSR 1440 LI-2 + AL 1880 CV BOSCH","lab","['lab', 'tools']" +334,"5-Port Fast Ethernet Switch Edimax 10/100Mbps","cow-work",['cow-work'] +333,"Karton ""ZASILACZE LAPTOP""","cow-work",['cow-work'] +332,"Karton ""URZĄDZENIA SIECIOWE LAN""","cow-work",['cow-work'] +331,"Karton ""VR""","cow-work",['cow-work'] +330,"Karton ""RADIO""","cow-work",['cow-work'] +326,"Lampa z lupą","lab",['lab'] +328,"Lampa z lupą niesprawna","lab",['lab'] +329,"Karton ""RÓŻNE MAŁE ZASILACZE""","cow-work",['cow-work'] +327,"Karton ""PRZEWODY ZASILAJACE""","cow-work",['cow-work'] +325,"Karton ""PRZEWODY <1MM2""","cow-work",['cow-work'] +324,"Karton ""AUDIO PRO""","cow-work",['cow-work'] +323,"Karton ""VIDEO""","cow-work",['cow-work'] +322,"Karton ""AUDIO JABRA""","cow-work",['cow-work'] +321,"Karton ""HDMI""","cow-work",['cow-work'] +320,"Karton ""RETRO AV SCART ET AL""","cow-work",['cow-work'] +319,"Karton ""LAN przewody""","cow-work",['cow-work'] +318,"Gra zręcznościowa “Wooden Blocks""","cow-work","['cow-work', 'boardgame']" +316,"Wavetek Universal Antenna Coupler WWG MMS-4107S","cow-work",['cow-work'] +287,"Gra wideo “PC Warcraft II: Tides of Darkness”","cow-work","['cow-work', 'video-game']" +289,"Gra wideo ""PC Fallout 1""","cow-work","['cow-work', 'video-game']" +297,"Naklejki ""własność prywatna""","cow-work",['cow-work'] +299,"Gra Koci Cymbergaj","cow-work",['cow-work'] +300,"Multifunction Printer Canon MG3150","cow-work",['cow-work'] +302,"Skaner Plustek OpticPro ST24","cow-work",['cow-work'] +305,"Voltage, Distortion, and Noise Meter VN-1687 Unitra Elmasz","cow-work",['cow-work'] +306,"WANPTEK Programmable DC Power Supply","cow-work",['cow-work'] +307,"Oscyloskop Hantek 6022BE","cow-work",['cow-work'] +309,"Type SMG-1 Stereo Generator Radiometer Copenhagen","cow-work",['cow-work'] +313,"Karton ""Słuchawki""","cow-work",['cow-work'] +301,"Karton ""ARTYKUŁY BIUROWE""","cow-work",['cow-work'] +314,"PINTEK 20MHz oscilloscope PS-200","cow-work",['cow-work'] +315,"PAL-B System?","cow-work",['cow-work'] +296,"HUBy USB-C","cow-work",['cow-work'] +144,"Venus","cow-work",['cow-work'] +52,"Evil Submarine","cow-work","['cow-work', 'projects']" +295,"Dmuchawa do elektroniki Appio","cow-work",['cow-work'] +288,"Gra wideo ""Warcraft II: Battle.net Edition""","cow-work","['cow-work', 'video-game']" +290,"Projektor Barco F22 SX+ Ultra Wide VizSim","cow-work",['cow-work'] +284,"Robotarm SVI-2000 QuickShot","cow-work",['cow-work'] +282,"Komputer ZX Spectrum +2","cow-work",['cow-work'] +281,"Gra wideo “PC Mortyr 2093-1944”","cow-work","['cow-work', 'video-game']" +280,"Komputer Commodore C=64","cow-work",['cow-work'] +278,"Philips PM5415TX color TV Pattern Generator","cow-work",['cow-work'] +277,"Joystick QuickShot II Turbo","cow-work",['cow-work'] +276,"Gra wideo “PC Dragon Dice”","cow-work","['cow-work', 'video-game']" +275,"Joystick Quickshot","cow-work",['cow-work'] +274,"Komputer Spectravideo SVI–738","cow-work",['cow-work'] +272,"Gra wideo “PC Man Of War”","cow-work","['cow-work', 'video-game']" +271,"Gra wideo “PC Warcraft: Orcs & Humans”","cow-work","['cow-work', 'video-game']" +270,"Gra wideo “Nowy Teenagent”","cow-work","['cow-work', 'video-game']" +269,"Gra wideo ""PC Requiem: Avenging Angel""","cow-work","['cow-work', 'video-game']" +268,"Gra wideo “PC CLASH”","cow-work","['cow-work', 'video-game']" +267,"Gra wideo ""PC Baldur’s Gate: Opowieści z Wybrzeża Mieczy""","cow-work","['cow-work', 'video-game']" +266,"Gra wideo “PC Fallout 2 - A Post Nuclear Role Playing Game”","cow-work","['cow-work', 'video-game']" +265,"Gra wideo “PC Might & Magic: Heroes VI - Pirates of the Savage Sea”","cow-work","['cow-work', 'video-game']" +264,"Gra wideo “PC Konung: Legenda Północy”","cow-work","['cow-work', 'video-game']" +263,"Gra wideo “PC End of Twilight: Zaginiona tarcza wikinga”","cow-work","['cow-work', 'video-game']" +262,"Gra wideo “Alien Nations”","cow-work","['cow-work', 'video-game']" +261,"Gra wideo “PC Tony Hawk's Underground 2”","cow-work","['cow-work', 'video-game']" +259,"Gra wideo ""PC Kroniki czarnego księżyca""","cow-work","['cow-work', 'video-game']" +260,"Gra wideo ""PC ony Hawk's Pro Skater 3""","cow-work","['cow-work', 'video-game']" +256,"Gra wideo “PC Full Spectrum Warrior”","cow-work","['cow-work', 'video-game']" +258,"Gra wideo ""PC Invictus: W Cieniu Olimpu""","cow-work","['cow-work', 'video-game']" +236,"Gra planszowa ""Carcassonne. Gra o zamkach, miastach i rycerzach.”","cow-work","['cow-work', 'boardgame']" +237,"Gra zręcznościowa ""Wieża""","cow-work","['cow-work', 'boardgame']" +238,"Gra planszowa ""Postaw na klocka""","cow-work","['cow-work', 'boardgame']" +239,"Gra planszowa “Tajniacy”","cow-work","['cow-work', 'boardgame']" +240,"Gra planszowa “Story Cubes: Podróże”","cow-work","['cow-work', 'boardgame']" +253,"Gra wideo ""PS2 Charlie and the Chocolate Factory""","cow-work","['cow-work', 'video-game']" +254,"Gra wideo “ The Chronicles of Narnia: The Lion, The Witch and The Wardrobe”","cow-work","['cow-work', 'video-game']" +255,"Gra wideo “PS2 Conflict: Vietnam”","cow-work","['cow-work', 'video-game']" +248,"Komputer Amstrad 128k Colour Personal Computer","cow-work",['cow-work'] +249,"Zasilacz laboratoryjny Zhaoxin","cow-work","['cow-work', 'tools']" +250,"Gra karciana ""Monty Python and the Holy Grail CCG Booster Pack""","cow-work","['cow-work', 'boardgame']" +252,"Konsola do gier Doom.txt","cow-work",['cow-work'] +251,"Konsola do gier DoomGirl","cow-work","['cow-work', 'video-game']" +212,"SUN Keyboard & Mouse Collection","cow-work",['cow-work'] +243,"Gra karciana ""List Miłosny""","cow-work","['cow-work', 'boardgame']" +242,"Dodatek do gry “ KeyForge: Zew Archontów - Talia Archonta”","cow-work","['cow-work', 'boardgame']" +241,"Gra planszowa “Developer Dilemmas”","cow-work","['cow-work', 'boardgame']" +244,"Osciloscope OS-352 ZUE Unitem","cow-work",['cow-work'] +245,"Dodatek do gry “KeyForge: Czas Wstąpienia - Talia Archonta”","cow-work","['cow-work', 'boardgame']" +246,"Gra planszowa “Dobble: collector”","cow-work","['cow-work', 'boardgame']" +247,"Gra planszowa “Cytadela”","cow-work","['cow-work', 'boardgame']" +91,"Drukarka 3D Creality Ender 3","lab","['lab', 'tools', '3d-print']" +139,"Drukarka Brother PT-E550WSP","lab",['lab'] +222,"Gra planszowa “Spiskowcy""","cow-work","['cow-work', 'boardgame']" +232,"Gra planszowa “Takie Życie - Ciekawostki""","cow-work","['cow-work', 'boardgame']" +234,"Gra planszowa ""Załoga: Wyprawa w głębiny""","cow-work","['cow-work', 'boardgame']" +235,"Gra planszowa ""Decrypto""","cow-work","['cow-work', 'boardgame']" +233,"Blinkenkrate","cow-work","['cow-work', 'projects']" +231,"Mecanorma 9,99999MHz","cow-work",['cow-work'] +230,"SECAM/PAL TV Pattern Generator Type K944","cow-work",['cow-work'] +229,"TRIO 15MHz Oscilloscope CS-1560A","cow-work",['cow-work'] +228,"Monitor Trinitron","cow-work",['cow-work'] +227,"Oscyloskop ST-315A II KABID Radiotechnika","cow-work",['cow-work'] +226,"Grundig AM/FM Generator AS4","cow-work",['cow-work'] +225,"Mera tronik Digital Voltmeter Type V530","cow-work",['cow-work'] +224,"Hewlett Packard 8640A Signal Generator","cow-work",['cow-work'] +223,"Sprzęt komp all-in-one krągły iMac *inander","cow-work",['cow-work'] +221,"Monitor Amstrad CTM644","cow-work",['cow-work'] +220,"UNITRA Unima Digital Multimeter 1331","cow-work",['cow-work'] +219,"Leader LVS-5851 A PAL Vectorscope","cow-work",['cow-work'] +218,"Zopan Signal Generator KZ 1623","cow-work",['cow-work'] +217,"UNITRA Elmasz Miernik nierównomierności ND-1481","cow-work",['cow-work'] +216,"SUN CD-ROM Caddy Loaded","cow-work",['cow-work'] +215,"Xbox 360 Plain","cow-work",['cow-work'] +214,"Xbox 360 Chrome","cow-work",['cow-work'] +213,"Xbox 360 Toothless","cow-work",['cow-work'] +211,"SUN Ultra 5 Bottom","cow-work",['cow-work'] +210,"SUN Ultra 5 Top","cow-work",['cow-work'] +209,"SUN Sparkstation 20","cow-work",['cow-work'] +203,"Multimetr TL-4",unknown,[] +156,"Drabinka","cow-work",['cow-work'] +155,"Flipchart","cow-work",['cow-work'] +166,"Gra planszowa Oriflamme","cow-work","['cow-work', 'boardgame']" +168,"Gra planszowa ""To ja go tnę""","cow-work","['cow-work', 'boardgame']" +152,"Gra planszowa Dreadful Circus","cow-work","['cow-work', 'boardgame']" +160,"Gra planszowa ""Mage Knight Dugeons""","cow-work","['cow-work', 'boardgame']" +169,"Gra planszowa Mix Tura","cow-work","['cow-work', 'boardgame']" +171,"Gra karciana UNO","cow-work",['cow-work'] +140,"Kamizelka projektu 'Człowiek'","cow-work",['cow-work'] +167,"Sprzęt komp Monitor Samson","cow-work",['cow-work'] +165,"Sprzęt komp Monitor mały Dellton","cow-work",['cow-work'] +163,"Sprzęt komp all-in-one krągły iMaciej","cow-work",['cow-work'] +162,"Sprzęt komp monitor Dellton","cow-work",['cow-work'] +161,"Sprzęt komp All-in-one Asuseł","cow-work",['cow-work'] +159,"Sprzęt komp monitor Optimus Prime","cow-work",['cow-work'] +158,"Sprzęt komp monitor Hehe Prince","cow-work",['cow-work'] +157,"Sprzęt komp All-in-one Lenovaldek","cow-work",['cow-work'] +154,"Sprzęt komp All-in-one Bazzite","cow-work",['cow-work'] +143,"Von Count","cow-work",['cow-work'] +142,"Kaktus","cow-work",['cow-work'] +141,"Tramwajomat","cow-work",['cow-work'] +170,"Sprzęt komp Desktop FrankenSUN","cow-work",['cow-work'] +172,"Sprzęt komp Desktop Bandzior","cow-work",['cow-work'] +173,"Sprzęt komp Desktop GOOD BOY","cow-work",['cow-work'] +174,"Sprzęt komp Desktop Unbreak My Heart","cow-work",['cow-work'] +175,"Sprzęt komp Desktop Mucha w Zupie","cow-work",['cow-work'] +178,"Sprzęt komp Desktop Roxanne","cow-work",['cow-work'] +180,"Sprzęt komp Desktop Wronisław","cow-work",['cow-work'] +194,"Sprzęt komp laptop Wonder Boy","cow-work",['cow-work'] +204,"Sprzęt komp laptop Lego Dell","cow-work",['cow-work'] +181,"Klimatyzator","cow-work",['cow-work'] +205,"Sprzęt komp laptop HackLab-0x01","cow-work",['cow-work'] +185,"Dekadowy Generator RC PW-9","cow-work",['cow-work'] +186,"Sprzęt komp laptop Vojtěch","cow-work",['cow-work'] +187,"PMZ-12 Automatic Distortion Meter","cow-work",['cow-work'] +190,"Dekadowy Generator RC PW-9 NATIONAL","cow-work",['cow-work'] +191,"Dekadowy Generator RC PW-9 TK2","cow-work",['cow-work'] +192,"Generator RC PO-20","cow-work",['cow-work'] +195,"Miernik napięć, zniekształceń i szumów VN-1064/A","cow-work",['cow-work'] +184,"Sprzęt komp All-in-one Przyczajony nieobecny Bazyl","cow-work",['cow-work'] +183,"Sprzęt komp All-in-one Przyczajony Bazyl Lewy","cow-work",['cow-work'] +182,"Sprzęt komp All-in-one Przyczajony Bazyl pierwszy","cow-work",['cow-work'] +108,"PC Engines APU2 Router Box","cow-work","['cow-work', 'networking']" +150,"LEDon Schrödinger's pussy","cow-work",['cow-work'] +164,"Sprzęt komp Monitor Hapeusz",unknown,[] +153,"LEDon Duck","cow-work",['cow-work'] +145,"Prince Charming","cow-work",['cow-work'] +93,"King Bob","cow-work",['cow-work'] +90,"Chciejlista",unknown,[] +85,"Komu powinien służyć Spejs",unknown,[] +84,"Budżet",unknown,[] +83,"Hackerspace Dragon Dreaming",unknown,[] +82,"Biblioteka","cow-work","['cow-work', 'books']" +66,"Apteczki","cow-work","['cow-work', 'garage', 'bhp']" +44,"Brayton Power","garage","['garage', 'projects']" +50,"Infinity mirror (duże)","garage","['garage', 'projects']" +41,"Wiertarka PSB 500 RE BOSCH","garage","['garage', 'tools']" +46,"What the Duck","cow-work","['cow-work', 'wled']"