Skip to main content

Apify SDK for Python

Project description

Apify SDK for Python

The Apify SDK for Python is the official library to create Apify Actors in Python. It provides useful features like actor lifecycle management, local storage emulation, and actor event handling.

If you just need to access the Apify API from your Python applications, check out the Apify Client for Python instead.

Installation

Requires Python 3.8+

You can install the package from its PyPI listing. To do that, simply run pip install apify in your terminal.

Usage

For usage instructions, check the documentation on Apify Docs or in docs/docs.md.

Development

Environment

For local development, it is required to have Python 3.8 installed.

It is recommended to set up a virtual environment while developing this package to isolate your development environment, however, due to the many varied ways Python can be installed and virtual environments can be set up, this is left up to the developers to do themselves.

One recommended way is with the built-in venv module:

python3 -m venv .venv
source .venv/bin/activate

To improve on the experience, you can use pyenv to have an environment with a pinned Python version, and direnv to automatically activate/deactivate the environment when you enter/exit the project folder.

Dependencies

To install this package and its development dependencies, run make install-dev

Formatting

We use autopep8 and isort to automatically format the code to a common format. To run the formatting, just run make format.

Linting, type-checking and unit testing

We use flake8 for linting, mypy for type checking and pytest for unit testing. To run these tools, just run make check-code.

Integration tests

We have integration tests which build and run actors using the Python SDK on the Apify Platform. To run these tests, you need to set the APIFY_TEST_USER_API_TOKEN environment variable to the API token of the Apify user you want to use for the tests, and then start them with make integration-tests.

If you want to run the integration tests on a different environment than the main Apify Platform, you need to set the APIFY_INTEGRATION_TESTS_API_URL environment variable to the right URL to the Apify API you want to use.

Documentation

We use the Google docstring format for documenting the code. We document every user-facing class or method, and enforce that using the flake8-docstrings library.

The documentation is then rendered from the docstrings in the code using Sphinx and some heavy post-processing and saved as docs/docs.md. To generate the documentation, just run make docs.

Release process

Publishing new versions to PyPI happens automatically through GitHub Actions.

On each commit to the master branch, a new beta release is published, taking the version number from src/apify/_version.py and automatically incrementing the beta version suffix by 1 from the last beta release published to PyPI.

A stable version is published when a new release is created using GitHub Releases, again taking the version number from src/apify/_version.py. The built package assets are automatically uploaded to the GitHub release.

If there is already a stable version with the same version number as in src/apify/_version.py published to PyPI, the publish process fails, so don't forget to update the version number before releasing a new version. The release process also fails when the released version is not described in CHANGELOG.md, so don't forget to describe the changes in the new version there.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apify-1.0.0b2.tar.gz (65.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apify-1.0.0b2-py3-none-any.whl (80.2 kB view details)

Uploaded Python 3

File details

Details for the file apify-1.0.0b2.tar.gz.

File metadata

  • Download URL: apify-1.0.0b2.tar.gz
  • Upload date:
  • Size: 65.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for apify-1.0.0b2.tar.gz
Algorithm Hash digest
SHA256 32fe8d0a53d9d1b96896b47eec0373ed4d3f4a657c12ae724ac7770859731dfe
MD5 f903972e202dcb909d7b34da2ca01891
BLAKE2b-256 bec2e0f6fa8ffaa565f309b7863f1a98e97e4b5f736234ba031c5f43fd813370

See more details on using hashes here.

File details

Details for the file apify-1.0.0b2-py3-none-any.whl.

File metadata

  • Download URL: apify-1.0.0b2-py3-none-any.whl
  • Upload date:
  • Size: 80.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for apify-1.0.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 65c08ae7a2b09d8fb2122d63e04b46fcb3eb3ff5b03aadd1009d8e1c3269c97f
MD5 b5ae00cf13b4a8f85a97cd79e0e9bfd7
BLAKE2b-256 34c16850dc130d01dfc2ea9bafdac1cae4b55108c296655dccc80ec549b8de9b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page