Skip to content
This repository was archived by the owner on Aug 3, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all 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
3 changes: 3 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Development

> ⚠️ This package is deprecated and archived - see the [README](README.md). New features and dependency updates are
> not accepted anymore; the guide below is kept only in case the project is revived.

Here you'll find a contributing guide to get started with development.

## Environment
Expand Down
26 changes: 19 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,27 @@
# Apify Shared Python

The `apify-shared-python` is a Python library for containing constants and utilities which are used across
our other Python projects like [apify-client-python](https://github.com/apify/apify-client-python)
and [apify-sdk-python](https://github.com/apify/apify-sdk-python).
> ⚠️ **DEPRECATED - this package is no longer maintained.**
>
> The `apify-shared` package is not used by any Apify Python library anymore - its constants and utilities were moved
> into the packages that need them. Already published versions stay installable from PyPI, but there will be no
> further releases, bug fixes, or security updates, and this repository has been archived.

If you want to develop Apify Actors in Python,
check out the [Apify SDK for Python](https://docs.apify.com/sdk/python) instead.
## What to use instead

- The [Apify SDK for Python](https://docs.apify.com/sdk/python) (the `apify` package) exposes the Actor constants,
such as `ActorEnvVars`, `ApifyEnvVars`, `ActorEventTypes`, and `WebhookEventType`.
- The [Apify API client for Python](https://docs.apify.com/api/client/python) (the `apify-client` package) provides
fully typed models and literals for the API resources it works with.

The signing helpers (`encode_base62`, `create_hmac_signature`, and `create_storage_content_signature`) have no public
replacement - they are an implementation detail of the packages above. Copy them into your own project if you depend
on them.

If you want to develop Apify Actors in Python, check out the [Apify SDK for Python](https://docs.apify.com/sdk/python).

## Installation

Requires Python 3.10+

You can install the package from its [PyPI listing](https://pypi.org/project/apify-shared).
To do that, simply run `pip install apify-shared` in your terminal.
The last published version is still available on its [PyPI listing](https://pypi.org/project/apify-shared), so
existing installations keep working. Importing the package emits a `DeprecationWarning`. Do not add it to new projects.
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ build-backend = "uv_build"
[project]
name = "apify_shared"
version = "2.2.2"
description = "Tools and constants shared across Apify projects."
description = "DEPRECATED - Tools and constants shared across Apify projects."
authors = [{ name = "Apify Technologies s.r.o.", email = "support@apify.com" }]
license = "Apache-2.0"
license-files = ["LICENSE"]
readme = "README.md"
requires-python = ">=3.10"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Development Status :: 7 - Inactive",
"Environment :: Console",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
Expand Down
1 change: 1 addition & 0 deletions renovate.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"enabled": false,
"extends": ["config:base", ":semanticCommitTypeAll(chore)"],
"ignorePaths": ["docs/**"],
"pinVersions": false,
Expand Down
9 changes: 9 additions & 0 deletions src/apify_shared/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
import warnings
from importlib import metadata

__version__ = metadata.version('apify-shared')

warnings.warn(
'The `apify-shared` package is deprecated and no longer maintained. Its constants and utilities now live in the '
'packages that need them: use `apify` (the Apify SDK for Python) or `apify-client` (the Apify API client for '
'Python) instead. See https://github.com/apify/apify-shared-python for details.',
DeprecationWarning,
stacklevel=2,
)
13 changes: 13 additions & 0 deletions tests/unit/test_deprecation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from __future__ import annotations

import importlib

import pytest

import apify_shared


def test_import_emits_deprecation_warning() -> None:
"""Importing the package warns that it is deprecated and points to the replacements."""
with pytest.warns(DeprecationWarning, match='`apify-shared` package is deprecated'):
importlib.reload(apify_shared)
Loading