From bbbbcb26490a288f38d2fcd547e59e95d25e65c3 Mon Sep 17 00:00:00 2001 From: Nhat Bui Date: Mon, 24 Aug 2026 14:22:57 +0700 Subject: [PATCH] =?UTF-8?q?fix:=20pin=20supported=20Python=20versions=20(3?= =?UTF-8?q?.11=E2=80=933.13)=20and=20add=20pyproject.toml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a pyproject.toml declaring requires-python >=3.11,<3.14 so pip errors early on unsupported versions (e.g. Python 3.13 with the older requirements that included numpy/spaCy wheels unavailable for 3.13, and future 3.14 wheels that do not yet exist for several pinned deps). Also updates: - README.md to document the Python 3.11–3.13 requirement. - Dockerfile to build from python:3.13-slim with a working directory. - CI matrix to test 3.11, 3.12, and 3.13 with up-to-date GitHub Actions versions. Fixes #133, fixes #119, fixes #150 --- .github/workflows/python-test.yaml | 24 +++++++++++------- Dockerfile | 9 ++++--- README.md | 8 ++++++ pyproject.toml | 39 ++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 pyproject.toml diff --git a/.github/workflows/python-test.yaml b/.github/workflows/python-test.yaml index be759d8d..d9613d5b 100644 --- a/.github/workflows/python-test.yaml +++ b/.github/workflows/python-test.yaml @@ -9,13 +9,16 @@ on: jobs: test-verify-email-username: runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.11', '3.12', '3.13'] steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.11 - uses: actions/setup-python@v2 + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip @@ -26,17 +29,20 @@ jobs: test-data-export: runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.11', '3.12', '3.13'] steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.11 - uses: actions/setup-python@v2 + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Run Export functions run: | - python -m unittest tests/test_export.py \ No newline at end of file + python -m unittest tests/test_export.py diff --git a/Dockerfile b/Dockerfile index 44295e21..449f6531 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ -FROM python:3.12-slim +FROM python:3.13-slim +WORKDIR /app +COPY requirements.txt . +RUN python3 -m pip install --no-cache-dir -r requirements.txt COPY . . - -RUN python3 -m pip install -r requirements.txt -ENTRYPOINT ["python3","blackbird.py"] \ No newline at end of file +ENTRYPOINT ["python3", "blackbird.py"] diff --git a/README.md b/README.md index 74c6300b..d1105caa 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,18 @@ cd blackbird **Install requirements** +> Blackbird requires **Python 3.11 – 3.13**. + ```bash pip install -r requirements.txt ``` +**Run with Python 3.11 – 3.13** + +```bash +python blackbird.py --username johndoe +``` + ### Usage **Search by username** diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..e11bec64 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,39 @@ +[build-system] +requires = ["setuptools>=61.0", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "blackbird" +description = "An OSINT tool to search for accounts by username and email in social networks." +readme = "README.md" +license = {text = "MIT"} +requires-python = ">=3.11,<3.14" +dynamic = ["version"] + +dependencies = [ + "aiohappyeyeballs==2.6.1", + "aiohttp==3.12.13", + "aiosignal==1.3.2", + "attrs==25.3.0", + "certifi==2025.6.15", + "chardet==5.2.0", + "charset-normalizer==3.4.2", + "frozenlist==1.7.0", + "idna==3.10", + "markdown-it-py==3.0.0", + "mdurl==0.1.2", + "multidict==6.6.2", + "pillow==11.3.0", + "propcache==0.3.2", + "Pygments==2.19.2", + "python-dotenv==1.1.1", + "reportlab==4.4.2", + "requests==2.32.4", + "rich==14.0.0", + "urllib3==2.5.0", + "yarl==1.20.1", +] + +[project.urls] +Homepage = "https://github.com/p1ngul1n0/blackbird" +Documentation = "https://p1ngul1n0.gitbook.io/blackbird/"