Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy3.9']
python: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy3.9']

steps:
- uses: actions/checkout@v4
Expand All @@ -35,10 +35,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.8
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9

- name: Install dependencies
run: |
Expand All @@ -45,6 +45,7 @@ jobs:
pip install setuptools wheel
pip install tensorflow
pip install keras
pip install build

- name: Run unit tests
run: pytest
Expand All @@ -57,7 +58,7 @@ jobs:

# Build the Python Wheel and the source distribution.
- name: Package release artifacts
run: python setup.py bdist_wheel sdist
run: python -m build

# Attach the packaged artifacts to the workflow output. These can be manually
# downloaded for later inspection if necessary.
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: 3.9

- name: Install dependencies
run: |
Expand All @@ -56,6 +56,7 @@ jobs:
pip install setuptools wheel
pip install tensorflow
pip install keras
pip install build

- name: Run unit tests
run: pytest
Expand All @@ -68,7 +69,7 @@ jobs:

# Build the Python Wheel and the source distribution.
- name: Package release artifacts
run: python setup.py bdist_wheel sdist
run: python -m build

# Attach the packaged artifacts to the workflow output. These can be manually
# downloaded for later inspection if necessary.
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ information on using pull requests.

### Initial Setup

You need Python 3.8+ to build and test the code in this repo.
You need Python 3.9+ to build and test the code in this repo.

We recommend using [pip](https://pypi.python.org/pypi/pip) for installing the necessary tools and
project dependencies. Most recent versions of Python ship with pip. If your development environment
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Build Status](https://travis-ci.org/firebase/firebase-admin-python.svg?branch=master)](https://travis-ci.org/firebase/firebase-admin-python)
[![Nightly Builds](https://github.com/firebase/firebase-admin-python/actions/workflows/nightly.yml/badge.svg)](https://github.com/firebase/firebase-admin-python/actions/workflows/nightly.yml)
[![Python](https://img.shields.io/pypi/pyversions/firebase-admin.svg)](https://pypi.org/project/firebase-admin/)
[![Version](https://img.shields.io/pypi/v/firebase-admin.svg)](https://pypi.org/project/firebase-admin/)

Expand Down Expand Up @@ -43,8 +43,8 @@ requests, code review feedback, and also pull requests.

## Supported Python Versions

We currently support Python 3.7+. However, Python 3.7 and Python 3.8 support is deprecated,
and developers are strongly advised to use Python 3.9 or higher. Firebase
We currently support Python 3.9+. However, Python 3.9 support is deprecated,
and developers are strongly advised to use Python 3.10 or higher. Firebase
Admin Python SDK is also tested on PyPy and
[Google App Engine](https://cloud.google.com/appengine/) environments.

Expand Down
7 changes: 0 additions & 7 deletions integration/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import json

import pytest
from pytest_asyncio import is_async_test

import firebase_admin
from firebase_admin import credentials
Expand Down Expand Up @@ -71,9 +70,3 @@ def api_key(request):
'command-line option.')
with open(path) as keyfile:
return keyfile.read().strip()

def pytest_collection_modifyitems(items):
pytest_asyncio_tests = (item for item in items if is_async_test(item))
session_scope_marker = pytest.mark.asyncio(loop_scope="session")
for async_test in pytest_asyncio_tests:
async_test.add_marker(session_scope_marker, append=False)
2 changes: 1 addition & 1 deletion integration/test_storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def _verify_bucket(bucket, expected_name):
blob.upload_from_string('Hello World')

blob = bucket.get_blob(file_name)
assert blob.download_as_string().decode() == 'Hello World'
assert blob.download_as_bytes().decode() == 'Hello World'

bucket.delete_blob(file_name)
assert not bucket.get_blob(file_name)
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
astroid == 2.3.3
pylint == 2.3.1
pytest >= 6.2.0
pytest >= 8.2.2
pytest-cov >= 2.4.0
pytest-localserver >= 0.4.1
pytest-asyncio >= 0.16.0
pytest-asyncio >= 0.26.0
pytest-mock >= 3.6.1
respx == 0.22.0

Expand Down
2 changes: 2 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
[tool:pytest]
testpaths = tests
asyncio_default_test_loop_scope = session
asyncio_default_fixture_loop_scope = None
7 changes: 3 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

(major, minor) = (sys.version_info.major, sys.version_info.minor)
if major != 3 or minor < 7:
print('firebase_admin requires python >= 3.7', file=sys.stderr)
print('firebase_admin requires python >= 3.9', file=sys.stderr)
sys.exit(1)

# Read in the package metadata per recommendations from:
Expand Down Expand Up @@ -60,18 +60,17 @@
keywords='firebase cloud development',
install_requires=install_requires,
packages=['firebase_admin'],
python_requires='>=3.7',
python_requires='>=3.9',
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Topic :: Software Development :: Build Tools',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'License :: OSI Approved :: Apache Software License',
],
)
Loading